2011-05-16 39 views
0

Aloha再次如此。將點擊事件綁定到Ext JS中的Tab中

我正在忙於一個幾乎所有ExtJS項目的前端工作。我使用的版本是4.0.0,假設這是必須知道的。我有一些代碼大致如下:

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

那幾個然後

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

現在我在這裏最大的問題是,我需要能夠將事件綁定到實際的標籤。我知道能夠將事件綁定到選項卡面板和選項卡欄,但我需要實際將click事件綁定到面板中的其中一個選項卡。我想沿着這個線的東西:

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

然而,問題的基礎上,我可以告訴你,結合實際面板本身,而不是在標籤欄的標籤了。就有趣的一面而言,就功能而言,它甚至不會綁定到實際面板上,因爲我從來沒有看到該控制檯日誌信息。

在任何情況下,你們中的任何人是否會碰巧知道如何將事件直接綁定到標籤?甚至如何直接訪問標籤?我一直在瀏覽ExtJS API文檔,但是我仍然無法找到任何東西,所以,如果這裏有人可以幫忙,那將會很棒! :D

只是爲了說清楚,我並不是試圖勾選標籤更改。我試圖掛鉤點擊標籤的實際點擊事件,因爲我將檢查它是否是鼠標中鍵被點擊,所以我可以關閉標籤如果是。

回答

1

您可以偵聽器添加到TabPanel本身聽beforetabchange和/或tabchange

+0

問題是beforetabchange和tabchange沒有解決解釋點擊的問題。我將要設置它綁定到click事件,並從那裏確定鼠標中鍵是否被按下。我一定會更新最初的問題;感謝您的建議,但:D – ozzmotik 2011-05-16 22:49:26

2

我在ExtJS的把這個選項卡上的標籤面板內3.同樣的事情也應該在工作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 
}); 
+1

你應該看看TabBar屬性在標籤面板在Ext4。使用選項卡的索引從tabBar項目中找到它,並將一個點擊處理程序附加到它。 – Blacktiger 2011-05-18 15:16:23

+2

我最終發現了我需要找出的東西;在向選項卡欄中添加選項卡之後,它將一個屬性添加到您添加到調用選項卡中的代表選項卡按鈕的組件中,因此,我只是將其綁定到該選項卡上,而且一切都很好。 – ozzmotik 2011-05-18 17:22:42

+0

很酷,這是有用的知道。 – Blacktiger 2011-05-19 15:39:51