我正在研究各种多层导航,但我不确定如何在这种情况下实现 .not 功能。
如果您查看菜单,它会按预期工作,但我想排除 1 级导航,因此,当打开子 UL 时,1 级 LI 的兄弟姐妹保持可见。
我不确定我是否解释得太好了,所以附上了一个 jsfiddle,希望有人可以帮助我完成这项工作。
这是我的javascript(我知道有些变量是多余的,没有优化,供以后使用)
var navLevel1 = $(".level-1-list");
var navLevel2 = $(".level-2-list");
var navLevel3 = $(".level-3-list");
var navLevel4 = $(".level-4-list");
var navLevel5 = $(".level-5-list");
navLevel2.hide();
navLevel3.hide();
navLevel4.hide();
navLevel5.hide();
function listMenuTrigger(listItemWithChildren) {
listItemWithChildren.next("ul").toggle();
listItemWithChildren.closest("li").not("level-1-list li").siblings().toggle();//not not working
if (listItemWithChildren.next("ul").is(":visible")) {
listItemWithChildren.removeClass("colapsed");
listItemWithChildren.addClass("expanded");
}
else {
listItemWithChildren.removeClass("expanded");
listItemWithChildren.addClass("colapsed");
}
}
$(".list-menu li:has(ul)").children("span").addClass("colapsed");
$( document ).ready(function() {
$(".colapsed").click(function(){
listMenuTrigger( $(this) );
})
});