Jquery UI 1.10 - 获取手风琴中选项卡的索引

时间:2013-03-05 18:27:51

标签: javascript jquery jquery-ui

所以我有一个JQuery UI手风琴,每个折叠中都有一些标签。我试图在打开的手风琴折叠中获取当前打开的选项卡的索引。我有一个在以前版本的JQuery中有效的解决方案:

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 个答案:

答案 0 :(得分:3)

您需要使用jQuery UI为您找到活动手风琴和标签的正确功能(active选项):

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

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

Working example

答案 1 :(得分: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();
 }
});

样本: http://jsfiddle.net/dirtyd77/NALMd/4/

希望这有帮助!

答案 2 :(得分:1)

根据你提供的jsFiddle代码,你必须改变它:

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

首先我们选择活动标签,然后我们得到正确的索引