所以我有一个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中并在刷新时进行检查。然后打开相应的手风琴和标签,页面看起来与刷新前的页面相同。任何提示将不胜感激。先谢谢!
答案 0 :(得分:3)
您需要使用jQuery UI为您找到活动手风琴和标签的正确功能(active
选项):
var activeAccordionIndex = $( ".accordion" ).accordion( "option", "active");
var activeTabIndex = $(".accordion > div:eq(" + accordionIndex + ")").find(".tabs").tabs( "option", "active");
答案 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');
首先我们选择活动标签,然后我们得到正确的索引