javascript - ExtJS 组件从 afterrender 和 focus 事件中获取不同的位置?

标签 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());
}

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

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

最佳答案

你可以使用事件 boxready

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

关于javascript - ExtJS 组件从 afterrender 和 focus 事件中获取不同的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34149408/

相关文章:

javascript - Json 劫持与 Ajax Jquery post 请求

extjs - GXT 2.2.5 Demo Explorer 站点去哪儿了?

javascript - XPages:配置文件切换

javascript - 如果代理遇到异常,Ext JS 4.0 取消存储加载

extjs - 如何在extjs中启用按钮?

javascript - ExtJs 5.1.0 - 无法识别的类名/别名 : widget. 笛卡尔

javascript - 如何直接从ajax请求的json响应中获取数据

javascript - 如何将配置属性赋予 Extjs 6 中的 View 项?

javascript - 是否可以在异步函数之外使用 await

javascript - 如何在 ng-click 到父元素后添加类 CSS?