2017-02-10 185 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什麼樣的作用在這裏。

相關問題