问题描述
|
有什么方法可以将事件侦听器添加到ExtJS v3.3.1中基于ajax的tabpanel的load / update事件中?我需要一个事件,该事件在检索并完全呈现选项卡内容之后触发,而不是在选择/激活选项卡并显示加载微调器之后立即触发。
我以为我可以在由Tabpanel的
getUpdater()
方法返回的Ext.Updater对象上添加此事件,即:
myTabs.getUpdater().on(\'update\',function()
{
console.log(\'tab loaded\');
});
但这似乎不起作用。有任何想法吗?
编辑:这是我的完整实现,可以更轻松地查看我要执行的操作:
var myTabs = new Ext.TabPanel(
{
id : \'rec_tabs\',activeTab : 0,enableTabScroll : true,padding : 5,autoWidth : false,autoHeight : true,border : false,plain : true,defaults : { autoHeight: true },items :
[
{ title : \'Tab #1\',autoLoad : { url : \'tab1_content.PHP\',scripts : true } },...
]
});
myTabs.render(\'tab_div\');
myTabs.getUpdater().on(\'update\',function()
{
console.log(\'tab loaded\');
});
解决方法
终于明白了。我还没有意识到TabPanel的每个项目的\“ autoLoad \”配置对象的属性实际上只是用作Ext.Updater.update()方法的参数。因此,我所要做的就是连同\“ url \”和\“ scripts \”参数一起,将\“ callback \”属性定义为当标签内容加载到其主体中时要执行的函数,和它的好去。
, 你有尝试过吗?
myTabs.on(\"afterrender\",function() {
console.log(\'tab loaded\');
});