jQuery: Stop-dropdown-Menü, das zusammenbricht, wenn ein Klick auf seine Kinder
Habe ich ein top-nav-bar und einige Ihrer Elemente trigger-dropdowns/slide-downs.
Mein problem ist, dass wenn ich auf ein Element klicken, oder eigentlich jedem Bereich innerhalb der dropdown-Liste die dropdown zusammenbricht.
Was ich benötige Hilfe ist, herauszufinden, wie zu vermeiden, kollabiert die dropdown-wenn ein Kind-element angeklickt wird (oder auch, überall in der dropdown-Bereich, da möchte ich Konto für versehentliche Klicks innerhalb der dropdown-aber das sind nicht wirklich die Klicks auf ein child-element).
Hier ist die grundlegende HTML Struktur, die ich habe:
<ul class="dropdown">
<li><a href="#" class="noclick nojs">Select your Topic</a>
<ul class="nojs" >
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
</ul>
</li>
</ul>
Meine JavaScript:
$('.dropdown li').click(function() {
//Hide all other drop downs that are visible, and remove the class 'selected'
$(this).siblings('.selected').removeClass('selected').find('ul:visible').slideUp('fast');
//Show/Hide dropdowns
$(this).toggleClass('selected');
$('ul:first', this).stop(true, true).slideToggle('fast');
});
Hier ein DEMO
Jede Hilfe wird sehr geschätzt.
Dank.
Du musst angemeldet sein, um einen Kommentar abzugeben.
stop event.stopPropagation() auf die Kinder-Elemente, so dass die Veranstaltung nicht Blase bis zu den li
http://jsfiddle.net/DEfK9/
stopPropagation();
, jetzt habe ich endlich verstehen, was es bedeutet :), man kann sagen ich bin das neue jQuery. Ich habe nicht zu ändern, meine aktuelle Skript, das ist toll. Es funktionierte perfekt wirey, vielen Dank.DEMO — Befestigen Sie die
.click()
event zu den<a>
- tags anstelle der<li>
tags.Könnte man einfach ändern slideToggle() um slideDown() mit snippet unter:
http://jsfiddle.net/yrzRu/
Hier gehen Sie!
GEIGE