0

もう一度アロハ、そう。

私は、フロントエンド作業のためのほぼすべての ExtJS であるプロジェクトに取り組んでいます。私はバージョン 4.0.0 を使用していますが、これは知っておく必要があると思います。次のようなコードがあります。

panel = Ext.create("Ext.panel.Panel",{
        //initializing stuffs
})

それらのいくつか

 tabs = Ext.create("Ext.tab.Panel", {
        //initialize config
        items: [
               //the panels
        ]
  })

ここでの大きな問題は、イベントを実際のタブにバインドできるようにする必要があることです。イベントをタブ パネルとタブ バーにバインドできることは認識していますが、実際にはクリック イベントをパネル内のタブの 1 つにバインドする必要があります。私はこれに沿って何かを試しました:

panel = Ext.create("Ext.panel.Panel", {
        //initializing stuffs
        listeners: {
                 click: {
                        fn: function() {
                            console.log("in click listener for panel")
                        }
                  }
         }
 })

ただし、問題は、私が知る限り、実際のパネル自体にバインドされ、タブバーのタブにはバインドされないことです。興味深いことに、機能に関する限り、実際のパネルにバインドすることさえありません。コンソールのログ情報が表示されないためです。

いずれにせよ、イベントをタブに直接バインドする方法を知っている人はいますか? または、タブに直接アクセスする方法さえありますか? 私は ExtJS API ドキュメントをふるいにかけましたが、まだ何も見つかりません。:D

明確にするために、タブの変更にフックしようとしているわけではありません。タブをクリックする実際のクリックイベントにフックしようとしています。マウスの中ボタンがクリックされているかどうかを確認して、そうであればタブを閉じることができるようにするためです。

4

2 に答える 2

2

これをExtJS3のタブパネル内のタブに配置しました。4でも同様のことが機能するはずです。

listeners: {
    activate: function() {
        var me = this;
        Ext.fly(this.ownerCt.getTabEl(this)).on({
            click: function() {
                me.loadProducts();
            }
        });
    },
    single: true
},

loadProducts: function() {
    this.load({
    url: 'products.jsp',
    params: {
        caseID: window.caseID
    },
    scripts: true
});
于 2011-05-17T19:21:15.543 に答える
1

および/またはをリッスンするリスナーをTabPanel自体に追加できますbeforetabchangetabchange

于 2011-05-16T22:06:17.257 に答える