2013-07-12 227 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

謝謝!我欣賞第二雙眼睛! –