我在我的标记中嵌套了jQuery手风琴,我尝试根据上次会话中最后打开的路径在页面加载时自动打开。 我将路径保存到cookie中,加载cookie并运行以下代码
path.forEach(function(label){
var element = root.find("[data-caption='"+label+"']");
element.parent().accordion( "option", "active", parseInt(element.attr('data-index')) );
root = element.children().eq(1);
});
问题在于,出于某种原因,“活跃的”#39;仅对第一个手风琴而非嵌套手风琴有效。
我多次检查过:
我不知道这里有什么问题,有什么想法吗?
答案 0 :(得分:0)
我自己发现了这个问题并在此发布以供将来参考。
问题是代码的这一部分
parseInt(element.attr('data-index'))
原因在于手风琴如何计算其面板中的元素。 在我的面板中,我有几个html元素,这些元素不是手风琴,而是几个。现在上面的代码给我带来了与整个面板相比较的accordion元素的索引。 问题是由于某种原因.active仅计算手风琴本身的子元素。因此,例如,如果一个元素的面板索引是3,但它在面板中有1个非手风琴元素,那么它的活动" index实际上是2。 我不知道为什么他们选择了这种行为,但是你有它。
我的解决方案是在元素上放置一个不同的属性" s" active"索引并使用它而不是数据索引。
现在一切都像魅力一样。