我有手风琴菜单:
<ul id="menu">
<li>
<a href="#" class="highmenu">Menu1</a>
<ul class="sub">
<li class="submenulink">Menu1Link1</li>
<li class="submenulink">Menu1Link2</li>
</ul>
</li>
<li>
<a href="#" class="highmenu">Menu2</a>
<ul class="sub">
<li class="submenulink">Menu2Link1</li>
<li class="submenulink">Menu2Link2</li>
</ul>
</li>
</ul>
这是我正在使用的jQuery脚本:
$(document).ready(function() {
var pathname = window.location.pathname;
$("#menu ul").hide();
$("#menu a[href='" + pathname + "']").parents(".sub").show();
$("#menu li a").click(function() {
var checkElement = $(this).next();
if ((checkElement.is("ul")) && (checkElement.is(":visible"))) {
return false;
}
if ((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
$("#menu ul:visible").slideUp("normal");
checkElement.slideDown("normal");
return false;
}
});
});
我想要的是当特定子打开时,相应的高级菜单将设置为highmenu active
类,当隐藏子级时,活动类将被删除。
非常感谢任何帮助,谢谢!
答案 0 :(得分:0)
这个怎么样?每次单击链接时,都会从所有链接中删除所有活动类,然后仅将其应用于适当的类:
var pathname = window.location.pathname;
$("#menu ul").hide();
$("#menu a[href='" + pathname + "']").parents(".sub").show();
$("#menu li a").click(function() {
$("#menu li a").removeClass("active");
$(this).addClass("active");
var checkElement = $(this).next();
if ((checkElement.is("ul")) && (checkElement.is(":visible"))) {
return false;
}
if ((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
$("#menu ul:visible").slideUp("normal");
checkElement.slideDown("normal");
return false;
}
});
在这里工作小提琴:http://jsfiddle.net/jKGNA/