Ich habe ein Twitter Bootstrap Dropdown-Menü. Wie alle Twitter Bootstrap-Benutzer wissen, schließt sich das Dropdown-Menü beim Klicken (auch wenn man darin klickt).
Um dies zu vermeiden, kann ich einfach einen Klick-Ereignishandler am Dropdown-Menü anhängen und einfach das berühmte event.stopPropagation()
hinzufügen.
Menüpunkt 1
Dies sieht einfach aus und ist ein sehr verbreitetes Verhalten, jedoch werden carousel-controls
(sowie carousel indicators
) Ereignishandler an das document
-Objekt weitergeleitet, so dass das click
-Ereignis auf diesen Elementen (z.B. prev/next controls, ...) "ignoriert" wird.
$('ul.dropdown-menu.mega-dropdown-menu').on('click', function(event){
// Das Ereignis wird nicht nach oben zum document-KNOTEN propagiert und
// daher werden weitergeleitete Ereignisse nicht ausgelöst
event.stopPropagation();
});
Sich auf die Twitter Bootstrap Dropdown hide
/hidden
-Ereignisse zu verlassen, ist keine Lösung aus folgenden Gründen:
- Das bereitgestellte Ereignisobjekt für beide Ereignishandler enthält keinen Verweis auf das angeklickte Element
- Ich habe keine Kontrolle über den Inhalt des Dropdown-Menüs, sodass das Hinzufügen einer
flag
-Klasse oder eines Attributes nicht möglich ist
Dieses Fiddle zeigt das normale Verhalten und dieses Fiddle zeigt das Verhalten mit event.stopPropagation()
hinzugefügt.
Aktualisierung
Danke an Roman für seine Antwort. Ich habe auch eine Antwort gefunden, die Sie unten finden können.