Nir*_*ana 2 html javascript jquery jquery-selectors
我有一个具有ID的主体,body并且在其中具有一个class的div nav-container。我想在用户单击时删除某些类#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>
Run Code Online (Sandbox Code Playgroud)
jQuery的
$('#body :not(.nav-container)').click(function() {
$('.cover').removeClass('active-cover');
$('.nav-container').removeClass('active');
});
Run Code Online (Sandbox Code Playgroud)
尽管它似乎对我不起作用。
它不会not排除通过早期css-selector标准的所选元素,因为.nav-container它不是被选择的列表的一部分#body(在这种情况下,不会作为ID的列表),因此您将无法排除该元素。所以基本上你需要的是
$(document).on("click", "div:not('.nav-container')",function() {
$('.cover').removeClass('active-cover');
$('.nav-container').removeClass('active');
});
Run Code Online (Sandbox Code Playgroud)