我有一个手风琴菜单结构来显示客户的项目。每个项目还有两个其他链接,不在手风琴中。单击这些链接时,手风琴将重置为默认打开位置,即第一个项目。客户不希望这样:活动项目应该在手风琴中保持打开状态。很合乎逻辑。
这是结构:
<div class="ui-accordion">
<h3>clickable title for accordion items</h3>
<ul>
<li><a></a></li>
<li><a class="active"></a></li>
<li><a></a></li>
</ul>
<h3>clickable title for accordion items</h3>
<ul>
<li><a></a></li>
</ul>
<h3>clickable title for accordion items</h3>
<ul>
<li><a></a></li>
</ul>
</div>
因此,包含h3
ul
的{{1}}上方的li
应获得
等级a.active
以及任何其他ui-state-active
应删除该类。
我发现我可以使用
h3
...但我不知道如何将.addClass('ui-state-active').siblings().removeClass('ui-state-active');
定位在h3
之上。非常感谢任何帮助:)
答案 0 :(得分:2)
您可以为每个引用其“h3”的“a”添加属性。例如:
<a data-h3="h3one"></a>
请参阅:
<h3 id="h3one"></h3>
然后你的jQuery可以从:
开始$('a').on('click', function() {
var h3 = $('h3[id=' + $(this).attr('data-h3') + ']');
// etc....
答案 1 :(得分:1)
试试这个
$('a.active').closest('ul')
.prev()
.addClass('ui-state-active')
.siblings('h3')
.removeClass('ui-state-active');
答案 2 :(得分:0)
这有效:
$( "div.ui-accordion" ).accordion("activate", $('a.active').closest('ul').prev());
部分启发:jQuery UI Accordion activate 谢谢你的帮助!