1

私は、いくつかの TabPanels といくつかのタブを含む Ext Js Web で作業しており、各タブでいくつかの異なる JQuery を使用したいと考えています。問題は、JQuery イベントをアタッチすると、すべてのタブにアタッチされることです同じ HTML であるため、1 つのタブを開く前にすべての 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」に対応するものだけで、1つのタブを初めて開いたときにのみ実行されます...たとえば、得られないものがあります:タブを開くたびに「アクティブ化」ポップが表示されますか? そう期待していた。

4

1 に答える 1

2

あなたが何をしたいのか理解できませんが、以下のコードがあります。

アイテム:[{
      xtype: 'タブパネル',
      アクティブタブ: 0,
      アイテム:[{
            タイトル: 'tab1',
            id:'divtab1',
            autoHeight: 真、
            アイテム:[{
                  // ここにあなたのコンテンツ
            }]
      }、{
            タイトル: 'tab2',
            id:'divtab2',
            autoHeight: 真、
            アイテム:[{
                  // ここにあなたのコンテンツ
            }]
      }、{
            タイトル: 'tab3',
            id:'divtab3',
            autoHeight: 真、
            アイテム:[{
                  // ここにあなたのコンテンツ
            }]
      }]、
      リスナー: {
            'tabchange': function(tabPanel, タブ){
                 if(tab.id=="divtab1")
                 {
                       function1();
                 }
                 それ以外の場合 (tab.id=="divtab2")
                 {
                       function2();
                 }
                 そうしないと
                 {
                       function3();
                 }
            }
       }

}]
于 2012-09-07T05:55:31.507 に答える