2013-05-09 137 views
0

我正在使用jquery ui選項卡(來自ui版本1.9.2),並且選項卡通過ajax遠程加載。jquery ui選項卡 - 在加載事件中獲取加載選項卡

在API文檔(http://api.jqueryui.com/1.9/tabs/#event-load),這似乎表明,我可以得到一個加載選項卡的索引是這樣的:

$(".tabs").tabs({ 
    load: function(event,ui) { console.log(ui.tab.index()); } 
}); 

但是,這是行不通的。我得到一個錯誤,因爲ui.tabundefined

當我CONSOLE.LOG ui.tab我得到的只是加載的標籤的完整URL,導致我相信ui.tab不是目標,我希望它成爲的那種。我也嘗試使用ui.panel.index(),但我得到相同的undefined錯誤。

我可以使用activate事件和ui.newTab.index()得到一個activated選項卡的索引,但這不是我正在尋找的。

我錯過了什麼?

+0

'console.log(ui)'應該告訴你所有你需要知道的能夠找到索引的東西,如果它有可能從ui中找到它的話。 – 2013-05-09 18:21:53

+0

如何?當我'console.log(ui)'我所得到的是'[object Object]'。 – Octavient 2013-05-09 18:25:13

+1

使用瀏覽器與適當的控制檯,如鉻或firefox +螢火蟲 – 2013-05-09 18:27:31

回答

4

這似乎是jQuery UI文檔尚未更新或他們是錯誤的(和/或預期的實現是不正確的)。 ui.tab正在返回DOM節點,而不是文檔建議的jQuery對象。

這將讓該選項卡的索引爲您提供:

$("#tabs").tabs({ 
    load:function(event,ui) { 
     var index = $(ui.tab).parent().index(); 

     console.log(index); 
    } 
}); 

如果您計劃使用該功能的ui.tab節點用於任何其他目的可能是最好先進行緩存。

+0

謝謝,大衛巴克。這解決了我的問題,所以我會將其標記爲答案。任何想法,我可以向jQuery團隊報告(過時的文檔)? – Octavient 2013-05-09 18:54:35

+0

我剛剛報告了它;-)(https://github.com/jquery/api.jqueryui.com/issues) – 2013-05-09 18:57:57

+0

@ octavient docs是相關的1.10.3,1.9.2的確返回了一個DOM節點 – 2013-05-09 19:54:51

相關問題