ExtJS组件从afterrender和焦点事件中获得不同的位置

ExtJS component get the different position from afterrender and focus event?

本文关键字:位置 事件 组件 afterrender 焦点 ExtJS      更新时间:2023-09-26

Hi我试图获得组件位置,但我发现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());
}

我认为正确的立场是关注和改变事件。为什么后渲染不同?

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

您可以使用事件boxready

产生差异的原因是对象被渲染时还没有布局。