Das wird ärgerlich - wenn ich auf ein Element in einer Bootstrap-Dropdown-Liste klicke, wird die Dropdown-Liste nicht geschlossen. Ich habe es so eingerichtet, dass ein Facebox-Leuchtkasten geöffnet wird, wenn Sie auf das Dropdown-Element klicken, aber es liegt ein Problem damit vor.
Was ich versucht habe
Wenn auf das Element geklickt wird, habe ich Folgendes versucht:
$('.dropdown.open').removeClass('open');
$('.dropdown-menu').hide();
Das verbirgt es, aber aus irgendeinem Grund öffnet es sich nicht wieder.
Wie Sie sehen, muss das Dropdown-Menü wirklich geschlossen werden, da es beschissen aussieht, wenn es geöffnet bleibt (hauptsächlich, weil z-index
das Dropdown-Menü höher ist als das modale Box-Overlay der Facebox.
Warum ich nicht die integrierte modale Box von Bootstrap verwende
Wenn Sie sich fragen, warum ich die in Bootstrap integrierte , gut aussehende Modalbox nicht verwende , liegt das daran, dass:
- Es gibt keine Möglichkeit, Inhalte mit AJAX darin zu laden.
- Sie müssen jedes Mal HTML für das Modal eingeben. Mit Facebox können Sie Folgendes einfach tun:
$.facebox({ajax:'/assets/ajax/dialogs/dialog?type=block-user&id=1234567'});
- Es verwendet CSS3-Animationen zum Animieren (was sehr gut aussieht), aber in Nicht-CSS3-Browsern wird nur angezeigt, was nicht so gut aussieht. Facebox verwendet JavaScript zum Einblenden, sodass es in allen Browsern funktioniert.
quelle
.dropdown('toggle')
schließt das Dropdown, verhindert aber auch das erneute Öffnen! Ich weiß nicht, wozu das gut ist!open
Klasse funktioniert, wird jedoch nicht aktualisiertaria-expanded
. Es ist immer besser, die API zu verwenden, wenn dies möglich ist.Ich habe die meisten Optionen von hier aus ausprobiert, aber keine davon hat wirklich für mich funktioniert. (Das
$('.dropdown.open').removeClass('open');
hat es versteckt, aber wenn Sie mit der Maus darüber gegangen sind, bevor Sie auf etwas anderes geklickt haben, wurde es wieder angezeigt.Also mache ich es mit einem
$("body").trigger("click")
quelle
<body>
, wird das Dropdown-Menü geschlossen?Bootstrap 4 (Oktober 2018):
quelle
Dies kann ohne Schreiben von JavaScript-Code erfolgen, indem das Attribut data-toggle = "dropdown" wie unten gezeigt in das Ankertag eingefügt wird :
quelle
Sie müssen nur
$('.dropdown.open').removeClass('open');
die zweite Zeile entfernen, die das Dropdown-Menü verbirgt.quelle
Das hat bei mir funktioniert:
quelle
Die ausgewählte Antwort hat bei mir nicht funktioniert, aber ich denke, das liegt an der neueren Version von Bootstrap. Am Ende schrieb ich Folgendes:
Hoffentlich ist das in Zukunft für jemand anderen hilfreich.
quelle
Versuche dies!
ODER
Es funktioniert immer für mich.
quelle
Warum meine Methode verwenden, denn wenn der Benutzer aus dem div herauskommt, erlaubt diese Metod dem Benutzer eine gewisse Verzögerung, bevor die Untermenüs verschwinden. Es ist wie mit dem Superfish Plugin.
1) Zuerst Hover Intent Javascript herunterladen
Link hier: Hover Intent Javascript
2) Hier ist mein Code zum Ausführen
quelle
quelle
Das Lesen der Dokumentation und die Verwendung von JavaScript kann mithilfe der Umschaltmethode erfolgen:
Sie können darüber lesen unter: http://getbootstrap.com/javascript/#dropdowns-methods
quelle
Versuchen Sie, HTML mit Bootstrap Modal zu öffnen. Ich verwende diesen Code:
und der Link ist wie folgt:
quelle
Hier ist meine Lösung zum Schließen der Schaltfläche und zum Umschalten der Schaltfläche:
Wobei "dies" ein globaler Container der Schaltflächengruppe ist.
quelle
Bootstrap 4.1:
quelle
Das hat bei mir funktioniert, ich hatte eine Navigationsleiste und mehrere Pulldown-Menüs.
quelle
Der einfachste Weg, dies zu tun, ist: Sie fügen ein Fell-Label hinzu:
Jedes Mal, wenn Sie ein Dropdown-Menü ausblenden möchten, rufen Sie Folgendes auf:
quelle
Ich weiß nicht, ob dies jemandem helfen wird (vielleicht ist es zu spezifisch für meinen Fall und nicht für diese Frage), aber für mich hat das funktioniert:
quelle
Nach dem Klicken:
quelle
Verwenden Sie class = "dropdown-toggle" für das Ankertag. Wenn Sie dann auf das Ankertag klicken, wird das Bootstrap-Dropdown geschlossen.
quelle
Hey, dieser einfache jQuery-Trick sollte helfen.
quelle
Der einfachste Weg:
quelle
Sie können diesen Code in Ihrem aktuellen Ereignishandler verwenden
In meinem Szenario habe ich verwendet, wenn der Ajax-Aufruf abgeschlossen ist
quelle
Die Auswahl nach Attributen ist der langsame Weg. Hier ist die schnellste Lösung, um das geöffnete Dropdown auszublenden:
oder verwenden Sie Folgendes, wenn das .dropdown-Menü nicht das nächste untergeordnete Element ist (suchen Sie das nächstgelegene übergeordnete Dropdown-Steuerelement):
quelle
Es wurde möglicherweise im Nachhinein hinzugefügt (obwohl diese Funktion selbst in Bootstrap 4.3.1 nicht dokumentiert ist), aber Sie können sie einfach mit einem
hide
Parameter aufrufen . Stellen Sie einfach sicher, dass Sie es für das toggler-Element aufrufen. Wie so:Dies funktioniert natürlich auch umgekehrt mit
show
.quelle