2

我使用jQuery UI選項卡時,你怎麼稱呼的tabselect事件,我有一個tabselect事件,我使用API​​來加載JSON和生成選項卡的內容:選擇jQuery UI的標籤編程

$('#tabs').bind('tabsselect', function(event, ui) { 
    if (ui.panel.id == "tab1") { 
    $.getJSON(...) 
    //load content of tab here 
    } 
} 

我還使用歷史插件選項卡鏈接:

$.address.change(function(event){ 
    $("#tabs").tabs("select" , hash); 
} 

因此,如果用戶進入我的頁面#TAB1然後TAB1被自動加載。問題是tabselect事件沒有被觸發,所以內容不會加載。

我已經確定所有這些都發生在文檔加載後。如果我手動轉到選項卡,那麼它可以正常工作,而不是在使用選項卡時(「select」,...);

是否有一些選項,我必須啓用,以便正常事件被激發,以編程方式選擇一個選項卡,而不是點擊它?

回答

4

根據對選擇的文檔:

選擇一個選項卡,就好像它被點擊。

這其實不叫tabselect事件處理程序,你可以通過這個例子中看到:

http://jsfiddle.net/andrewwhitaker/UsnNu/1/

有趣的是,它不火,如果選擇一個標籤編程這是已經激活(在該示例中,如果您以編程方式選擇tab-1,它不會觸發事件處理程序)。這可能是問題嗎?或者hash包含錯誤的內容(即您使用的歷史插件有問題)?

對不起,我無法提供明確的答案,但希望這可以幫助您找出問題所在。

+0

它還如果您選擇選項卡-3不火,並更改代碼以編程方式選擇標籤-1 – Pakman 2011-08-04 22:15:08

3

請嘗試連接到show事件。這對我有用,因爲當我開始緩存選項卡狀態時,我遇到了同樣的問題。

$(".selector").bind("tabsshow", function(event, ui) { 
    ... 
}); 

更多信息這裏:http://jqueryui.com/demos/tabs/#event-show