我正在做一個下拉菜單,並試圖將列表項目圖像從加號(未打開時)更改爲減號(打開時)。如何從包含在選擇器中的jQuery函數中排除元素?
第一層(父列表項)設置爲list-style:none;
所以當下面執行.click()
,我希望.addClass('close');
適用於一切,除了家長<li>
的...
的問題是,選擇用於包含.click()
函數的函數包括父列表項。
我需要做的是說:
「應用類 '關閉',以$(本)除第(父)<li>
'S'」
這裏是jQuery的:
$(document).ready(function(){
$("#nav li").click(function(event){
// My attempt (not working)...
$(this).not("#nav > ul > li").addClass('close');
event.stopPropagation();
$(this).children("ul").slideToggle(100);
$(".last, a").click(function(event){
event.stopPropagation();
});
});
});
而且的jsfiddle:
所以我嘗試了以下內容:
$(this).not("#nav > ul > li").addClass('close');
那沒有工作......因此,如果任何人有任何建議,將不勝感激!謝謝:)
更新:
類 '關閉' 需要!important
添加到它。 jQuery正在做它應該做的事情。當我在關閉菜單項目後成功移除課程時,我會發布答案。
更新(2):
移除!important
和改變的類規範#nav li.close
。感謝Adeneo!
更新(3):
更改.addClass()
到.toggleClass()
。似乎使這個菜單做我想要的:)感謝Sushanth--對於這個建議!
這似乎是工作。 'close'類不適用於頂級'li's –
增加!對'close'類非常重要,它應用' - '列表樣式圖像。現在,我只需要在關閉元素時刪除類... – derekmx271
@Asad - 我剛剛意識到我的CSS是問題,而不是jQuery ...需要!close類中的重要內容。 – derekmx271