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

时间:2015-12-08 06:29:17

标签: javascript extjs extjs5 extjs-mvc

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

就像这个样本fiddle

一样
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());
}

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

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

1 个答案:

答案 0 :(得分:5)

您可以使用 boxready

活动

造成差异的原因是对象被渲染的事件尚未布局。