我有一个我创建的面板,其中包含加载器配置以将 jsp 页面加载到其中。jsp 中有标记,我需要在我的 ext 控制器中附加一个侦听器。我遇到的问题是我在面板上收听 afterrender,但是来自 jsp 页面的 dom 并不总是被渲染/加载,但它是一个时间问题(有时 afterrender 可以找到 dom,而其他时候它不能在此刻)。我尝试在加载器上放置一个监听器来监听负载。但是我又遇到了同样的问题,有时dom已经在那个时候被渲染了,有时它没有(再次是时间问题)。
Ext.create('panel', {
listeners : {
afterrender: {
fn : function(){
Ext.dom.Query.select('#mydiv');//sometimes this finds it some times it doesn't
}
}
}
loader : {
url : '/my/jsp',
autoLoad : true,
listeners : {
load : {
fn : function(){
Ext.dom.Query.select('#mydiv');//sometimes this finds it some times it doesn't
}
}
}
}
});
加载jsp并在面板中渲染dom后是否有事件要监听?我认为在加载程序完成将 jsp 的 dom 加载到面板之前调用 afterrender 并且与加载程序加载事件相同。在尝试查询 dom 并附加侦听器之前,我需要确保 jsp 中的 dom 在面板中呈现。