2017-02-10 1 views
0

So wählen Sie Elemente in jQuery aus, die kein bestimmtes Element enthalten. Ich möchte eine Sidebar erstellen, die geschlossen wird, nachdem der Benutzer entweder auf das Menü oder die Seitenleiste selbst geklickt hat, aber auf das Dropdown-Menü beschränkt ist. Hier ist die Struktur Code des Menüs:So wählen Sie Elemente in jQuery aus, die kein bestimmtes Element enthalten

<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> 

Hier ist der 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'); 
    }); 
}); 

Mein Code oben wird immer noch die Seitenleiste schließen, obwohl ich die Drop-down klicken. Vielen Dank im Voraus.

+2

Wo sind die Elemente #sidebar und #wrapper in Ihrem Markup? Und es gibt auch kein Element mit Klasse .Sidebar-Toggle, an das das Click-Ereignis gebunden werden könnte. Wie sollen wir das reproduzieren? – Connum

Antwort

0

Sie benötigen li, die direkte Kinder von .sidebar-nav zu verarbeiten und enthalten keine ul verschachtelt:

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

Aber ich habe nicht klar bekommen, welche Rolle von #sidebar hier.

Verwandte Themen