1

有没有办法在 ExtJS v3.3.1 中为基于 ajax 的选项卡面板的加载/更新事件添加事件侦听器?我需要一个在检索并完全呈现选项卡内容后触发的事件,而不是在选择/激活选项卡并显示加载微调器之后触发的事件。

我想我可以在 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'); 
});  
4

2 回答 2

2

终于想通了。我没有意识到 TabPanel 的每个项目的“autoLoad”配置对象的属性实际上只是用作 Ext.Updater.update() 方法的参数。所以我所要做的就是与“URL”和“脚本”参数一起定义了“回调”属性作为要在选项卡内容填写到其身体时要执行的函数,其很好。

于 2011-06-07T17:47:18.910 回答
0

你试过这个吗?

myTabs.on("afterrender", function() {
    console.log('tab loaded');
});
于 2011-06-06T20:42:12.443 回答