1

所以我有一个 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展示了这种行为。

需要明确的是,我需要能够记住刷新之间的页面状态。因此,我需要活动手风琴索引和活动选项卡索引,然后将它们放入 cookie 并检查刷新。然后打开相应的手风琴和选项卡,页面看起来与刷新前一样。任何提示将不胜感激。预先感谢!

4

3 回答 3

3

您需要使用activejQuery UI 为您提供的正确功能(选项)来查找活动的手风琴和选项卡:

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

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

工作示例

于 2013-03-05T18:49:20.273 回答
1

使用jQuery Tab 的.activate()事件

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/

希望这可以帮助!

于 2013-03-05T18:45:31.767 回答
1

根据您提供的 jsFiddle 代码,您必须像这样更改它:

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

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

于 2013-03-05T18:48:47.457 回答