【发布时间】:2010-12-27 19:12:04
【问题描述】:
我正在尝试制作一个可折叠的菜单,标记如下:
当点击 .cat_menu_header 时,它下面的 ul 应该展开并且所有展开的 ul 应该折叠。所以我们从所有东西都折叠开始,只有 .cat_menu_header 元素可见,一次展开最多 1 个 .submenu。
<ul id='sidebarNav'>
<li class='cat_menu_header'><a class='collapsed' href='#'>Link 1
<ul class='submenu'>
<li><a href='#'>text 1</a></li>
<li><a href='#'>text 2</a></li>
</ul>
</li>
<li class='cat_menu_header'><a class='collapsed' href='#'>Link 2
<ul class='submenu'>
<li><a href='#'>text 3</a></li>
<li><a href='#'>text 4</a></li>
</ul>
</li>
</ul>
follow js 使每个 .submenu 展开和折叠,但我不知道如何选择所有展开的 ul 并折叠它们。我添加了 .collapsed 类,可以使用 toggleClass 将其更改为 .expanded。
我知道我很接近了......
$(document).ready(function(){
//sidebar collapsible menu
$("#sidebarNav > li > ul").hide();
$("#sidebarNav a.collapsed").click(function() {
$(this).toggleClass("expanded").toggleClass("collapsed").find("+ ul").slideToggle("fast");
return false;
});
});
【问题讨论】:
标签: jquery