有没有办法在ExtJS v3.3.1中为基于ajax的tabpanel的加载/更新事件添加事件监听器?我需要在检索并完全呈现选项卡内容后触发的事件,而不是在选择/激活选项卡并显示加载微调器后立即触发。
我以为我可以在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');
});
答案 0 :(得分:2)
终于明白了。我没有意识到TabPanel的每个项目的“autoLoad”配置对象的属性实际上只是用作Ext.Updater.update()方法的参数。所以我所要做的就是连同“url”和“scripts”参数,将“回调”属性定义为当标签内容加载到其主体时要执行的函数,并且它很好用。
答案 1 :(得分:0)
你试过这个吗?
myTabs.on("afterrender", function() {
console.log('tab loaded');
});