0

Ext.getElementById从应用程序代码的特定部分进行了以下调用,在此上下文中调用时确实有效:

init: function() {
    // template method called when app boots; before Viewport is created

    this.control({
        'launcherlist': {
            itemclick: function (dataView, record) {
            Ext.getElementById('element-id');
         },
    }
    ...
}

但是,在发生任何用户触发的事件之前,我需要getElementById在更早的阶段调用。

当应用程序启动时getElementById直接在其中调用时init不起作用;init在创建视口之前。

所以我决定重写控制器的onLaunch事件,因为onLaunch它是一个模板方法init,但是在创建 Viewport 之后调用:

onLaunch: function() {
    Ext.getElementById('element-id');
},

然而,这也不起作用。

TL/DR

在发生任何用户触发的操作之前,我可以在哪里进行工作调用? Ext.getElementById

4

2 回答 2

3

您可能想解释一下您要做什么。getElementById 是一种“私有”方法,您不应该真正调用它。如果要通过 id 获取元素,请使用 Ext.get。

于 2012-07-08T14:00:39.227 回答
0

解决方案:

由于呈现我正在寻找的 DOM 元素的小部件 extends Ext.view.View,正确的事件之后 Ext.get可以实际找到呈现的元素是viewready事件。

PS One 应该Ext.get在任何地方使用,而不是Ext.getElementById因为后者是一种私有方法。

于 2012-07-10T20:37:14.553 回答