在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');
});