2013-07-12 150 views
0

我正在进行多层导航的排序,我不确定如何在这种情况下实现.not函数。正确实施jQuery不是

如果你看看菜单的工作原理,但我想排除1级导航,因此,当儿童UL打开时,1级LI的兄弟姐妹将保持可见。

我不确定是否我解释得太好了,所以附上了一个jsfiddle,希望有人可以帮助我完成这项工作。

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));    
}) 
}); 
+1

什么是你的问题? – raam86

+0

.not部分不起作用 –

+0

您认为它应该做什么? – raam86

回答

2

你不是指level-1-list为一类。 (另外,你需要确保你只not()荷兰国际集团及其直接孩子绊倒了我一会儿。)

listItemWithChildren.closest("li").not(".level-1-list>li").siblings().toggle();//not now working 

编辑补充:JSFiddle

+1

谢谢!我欣赏第二双眼睛! –