ExtJS组件从Afterrender和focus事件中获得不同的位置?

Ray*_*Yeh 1 javascript extjs extjs-mvc extjs5

嗨我试图获得组件位置,但我发现getXY()将在不同的事件中显示不同的位置.

像这个样本,小提琴

init: function() {
    var me = this;

    me.control({
        'textfield[itemId=field]': {
            change: me.changeField,
            focus: me.focusField,
            afterrender: me.afterRenderField
        }

    });

},

focusField: function(field, event) {
    console.log(field.getXY());
},

changeField: function(field, newValue, oldValue) {
    console.log(field.getXY());
},

afterRenderField: function(field) {
    console.log(field.getXY());
}
Run Code Online (Sandbox Code Playgroud)

我认为正确的立场是关注焦点和改变事件.为何后悔不同?

我想在组件渲染后做一些事情,所以我需要获得正确的位置.

小智 5

你可以使用事件boxready

差异的原因是对象被渲染的事件还没有布局.