Ich benutze ein Bootstrap-Dropdown als Einkaufswagen. Im Warenkorb befindet sich eine Schaltfläche "Produkt entfernen" (ein Link). Wenn ich darauf klicke, entfernt mein Shoppingcart-Skript das Produkt, aber das Menü wird ausgeblendet. Gibt es überhaupt eine Möglichkeit, dies zu verhindern? Ich habe e.startPropagation ausprobiert, aber das schien nicht zu funktionieren:
<div id="shoppingcart" class="nav-collapse cart-collapse">
<ul class="nav pull-right">
<li class="dropdown open">
<a href="#" data-toggle="dropdown" class="dropdown-toggle">Totaal:
€ 43,00</a>
<ul class="dropdown-menu">
<li class="nav-header">Pakketten</li>
<li>
<span class="quantity">1x</span>
<span class="product-name">Test Product </span>
<span class="product-remove"><a class="removefromcart" packageid="4" href="#">x</a>
</span></li>
<li><a href="#">Total: € 43,00</a></li>
<li><a href="/checkout">Checkout</a></li>
</ul>
</li>
</ul>
Wie Sie sehen können, hat das Element mit class = "dropwdown-toggle" es zu einem Dropdown gemacht. Eine andere Idee war, dass ich es einfach wieder öffne, wenn ich programmgesteuert klicke. Wenn mir jemand erklären kann, wie man ein Bootstrap-Dropdown-Menü programmgesteuert öffnet, ist das hilfreich!
jquery
twitter-bootstrap
Marder Sytema
quelle
quelle
ul.dropdown-menu
verwendenform.dropdown-menu>ul
.Antworten:
Versuchen Sie, die Ausbreitung auf der Schaltfläche selbst wie folgt zu entfernen:
Bearbeiten
Hier ist eine Demo aus den Kommentaren mit der obigen Lösung:
http://jsfiddle.net/andresilich/E9mpu/
Relevanter Code:
JS
HTML
quelle
.stopPropagation()
Methode zusammen mit dem Entfernungsskript implementiert habe ..live()
wurde ab jQuery Version 1.7 veraltet..live()
wurde ersetzt durch.on()
.Diese Antwort ist nur eine Nebenbemerkung zur akzeptierten Antwort. Dank sowohl des OP als auch von Andres für diese Fragen und Antworten hat es mein Problem gelöst. Später brauchte ich jedoch etwas, das mit dynamisch hinzugefügten Elementen in meiner Dropdown-Liste funktioniert. Jeder, der auf diese stößt, könnte auch an einer Variation der Andres-Lösung interessiert sein, die sowohl mit den Anfangselementen als auch mit Elementen funktioniert, die dem Dropdown-Menü nach dem Laden der Seite hinzugefügt wurden:
Oder für dynamisch erstellte Dropdown-Menüs:
Fügen Sie das
data-keepOpenOnClick
Attribut dann<li>
je nach Situation an einer beliebigen Stelle in einem der Tags oder seinen untergeordneten Elementen ein. Z.B:quelle
Wenn Sie in Bootstrap 4 ein Formular in das Dropdown-Menü einfügen, wird es beim Klicken nicht zusammenfallen.
Das hat also am besten für mich funktioniert:
quelle
Kurz gesagt, Sie können dies versuchen. Es funktioniert für mich.
quelle
Das Menü wird geöffnet, wenn Sie
show
dem Menü eine Klasse geben , sodass Sie die Funktion selbst implementieren können, ohne sie zu verwendendata-toggle="dropdown"
.Versuchen Sie dies in Codepen .
quelle
Ich hatte das gleiche Problem mit einem Akkordeon / Umschalt-Untermenü, das in einem Dropdown-Menü in Bootstrap 3 verschachtelt war. Diese Syntax wurde aus dem Quellcode ausgeliehen , um zu verhindern, dass alle Zusammenbruch- Umschalter das Dropdown-Menü schließen:
Sie können
[data-toggle="collapse"]
das Formular durch alles ersetzen, was Sie beenden möchten, ähnlich wie @DonamiteIsTnt eine Eigenschaft hinzugefügt hat, um dies zu tun.quelle
Ich habe einige Codezeilen geschrieben, mit denen es so perfekt funktioniert, wie wir es brauchen, mit mehr Kontrolle darüber:
quelle