1

我正在使用带有一些 TabPanels 和一些选项卡的 Ext Js 网络,并且我想在每个选项卡上使用一些不同的 JQuery,问题是如果我附加一些 JQuery 事件,它会附加到所有选项卡,因为它们在相同的 HTML,因此我想在打开一个选项卡之前取消绑定所有 JQuery 事件,并绑定我想要的事件,让事件仅在打开相应选项卡时进行监听。

为了测试事件,我将以下侦听器附加到我的 tabPanel:

listeners:{
        beforetabchange : function(){
            Ext.Msg.alert("beforetabchange");
        },
        beforeshow : function(){
            Ext.Msg.alert("beforeshow");
        },
        activate : function(){
            Ext.Msg.alert("activate");
        },
        deactivate : function(){
            Ext.Msg.alert("deactivate");
        }   
  }

所以我期待很多弹出窗口,但唯一显示的是与“beforetabchange”相对应的弹出窗口,它仅在我第一次打开一个选项卡时执行......所以有些东西我没有得到,例如:应该每次打开标签时都会显示“激活”弹出窗口?我是这么期待的。

4

1 回答 1

2

我无法理解你想要做什么,但我有下面的代码,可能对你有帮助。

项目:[{
      xtype: '标签面板',
      活动标签:0,
      项目:[{
            标题:'tab1',
            id:'divtab1',
            自动高度:真,
            项目:[{
                  // 你的内容在这里
            }]
      },{
            标题:'tab2',
            id:'divtab2',
            自动高度:真,
            项目:[{
                  // 你的内容在这里
            }]
      },{
            标题:'tab3',
            id:'divtab3',
            自动高度:真,
            项目:[{
                  // 你的内容在这里
            }]
      }],
      听众:{
            'tabchange':函数(tabPanel,标签){
                 if(tab.id=="divtab1")
                 {
                       函数1();
                 }
                 否则 if(tab.id=="divtab2")
                 {
                       函数2();
                 }
                 别的
                 {
                       函数3();
                 }
            }
       }

}]
于 2012-09-07T05:55:31.507 回答