我有一个标识为body
的正文,其中有一个类nav-container
的div。我希望在用户点击#body
时删除某些课程,而不是.nav-container
(这是菜单的叠加类型)。
尝试下面的代码
HTML:
<body id="body">
<div class="nav-container">
<a href="#" id="close-btn"> X </a>
<nav class="display">
<ul>
<li><a href="#"> One </a></li>
<li><a href="#"> Two </a></li>
<li><a href="#"> Three </a></li>
</ul>
</nav>
</div>
</body>
的jQuery
$('#body :not(.nav-container)').click(function() {
$('.cover').removeClass('active-cover');
$('.nav-container').removeClass('active');
});
但它似乎对我不起作用。
答案 0 :(得分:3)
它不起作用not
排除传递早期css选择器条件的选定元素,因为.nav-container
不是#body
选择的列表的一部分(不会列在此列表中)案例作为其ID),所以你不能排除它。
所以基本上你需要的是
$(document).on("click", "div:not('.nav-container')",function() {
$('.cover').removeClass('active-cover');
$('.nav-container').removeClass('active');
});
答案 1 :(得分:0)
第一个元素不应该是父元素,比如#body,而不是元素。例如\
适用于除示例之外的每个div。
div:not('example')
&#13;
$("div:not(.nav-container)").click(function() {
alert("nav-container was not clicked");
});
&#13;