2017-02-10 158 views
0

如何选择jQuery中没有特定元素的元素。我想在用户点击菜单或边栏本身之后创建一个关闭边栏,但仅限于下拉菜单。这是菜单的结构代码:如何选择jQuery中没有特定元素的元素

<li><a href="#">Menu Normal</a></li> 
<li> 
    <a href="#">Menu Dropdown</a> 
    <ul class="sidebar-nav-child"> 
    <li><a href="#">Menu-1</a></li> 
    <li><a href="#">Menu-1</a></li> 
    <li><a href="#">Menu-1</a></li> 
    </ul> 
</li> 

这里是jQuery的:

$(".sidebar-toggle").click(function(e){ 
    e.preventDefault(); 
    $("#wrapper").addClass('sidebar-show'); 
    $("#sidebar, .sidebar-nav li:not(:has(.sidebar-nav-child)) a").click(function(){ 
    $("#wrapper").removeClass('sidebar-show'); 
    }); 
}); 

我上面的代码将仍然关闭边栏,即使我点击下拉。 预先感谢您。

+2

标记中的#sidebar和#wrapper元素在哪里?而且,也没有可以绑定click事件的.sidebar-toggle类的元素。我们应该如何重现这一点? – Connum

回答

0

您需要处理li是的.sidebar-nav直接孩子,不包含嵌套ul

$("#sidebar, .sidebar-nav > li:not(:has(ul)) a") 

但我还没有得到明确的#sidebar什么样的作用在这里。