2013-03-05 112 views
1

所以我有一個JQuery UI手風琴,每個摺疊中都有一些標籤。我試圖獲得當前打開的標籤的索引,這是在開放的手風琴摺疊中。我曾在以前版本的jQuery工作的解決方案:Jquery UI 1.10 - 獲取手風琴內選項卡的索引

var active_tab = $(".accordion.ui-accordion-content-active.tabs").find("div:not(.ui-tabs-hide)").index()-1; 

但是,因爲我更新了我的JQuery的版本,我一直沒能得到這個工作,它總是給我一個「-2」。

我也嘗試過這樣的事情:

var curTab = $('.accordion .ui-accordion-content-active .ui-tabs-active'); 
active_tab = curTab.index(); 

但這又只是給了我一個-1,而不管選擇的選項卡。

有一個JSFiddle here顯示此行爲。

要清楚,我需要能夠記住刷新之間的頁面狀態。所以,我需要積極的手風琴索引和活動標籤索引,然後將它們放入cookie中並檢查刷新。然後打開相應的手風琴和選項卡,頁面看起來與刷新前相同。任何提示將不勝感激。事先感謝!

回答

3

您需要使用正確的職能(active選項)是jQuery UI的給你找到積極的手風琴和標籤:

var activeAccordionIndex = $(".accordion").accordion("option", "active"); 

var activeTabIndex = $(".accordion > div:eq(" + accordionIndex + ")").find(".tabs").tabs("option", "active"); 

Working example

+0

這真的很好,實際上給了我確切的選擇器,我需要做一些其他的事情可見的選項卡集。謝謝! – SuperTron 2013-03-05 20:10:06

1

使用jQuery Tab's .activate() event

JAVASCRIPT:

$(".accordion").accordion({ 
    active: false, 
    heightStyle: "content", 
    collapsible: true 
}); 

$(".tabs").tabs({ 
activate: function(event, ui) { 
    active_tab = ui.newTab.index(); 
} 
}); 

DEMO: http://jsfiddle.net/dirtyd77/NALMd/4/

希望這有助於!

+0

這個效果很好。但是,我想避免使用全局變量,僅僅是因爲我的腳本是如何組織的。感謝您的信息,但+1。 – SuperTron 2013-03-05 20:07:49

1

根據您所提出的jsfiddle代碼,你必須改變這樣的:

var curTab = $('.accordion h3.ui-state-active'); 
active_tab = curTab.index('h3'); 

我們所選擇的活動標籤的第一,那麼我們得到正確的索引它