aboutsummaryrefslogtreecommitdiff
path: root/js/src
diff options
context:
space:
mode:
authorJohann-S <[email protected]>2019-08-25 18:12:02 +0200
committerXhmikosR <[email protected]>2019-08-27 16:32:25 +0300
commitef1c7aadbc61c69e03ecc7c6e13bdccd1901cbd4 (patch)
treeaa936dcac6452b6e63259a58a01604da0e9ca05d /js/src
parentdd181e91bd174776cf81a8747d39d1d2f89c339e (diff)
downloadbootstrap-ef1c7aadbc61c69e03ecc7c6e13bdccd1901cbd4.tar.xz
bootstrap-ef1c7aadbc61c69e03ecc7c6e13bdccd1901cbd4.zip
Backport #29298
dropdown show method should do the same as toggle
Diffstat (limited to 'js/src')
-rw-r--r--js/src/dropdown.js39
1 files changed, 14 insertions, 25 deletions
diff --git a/js/src/dropdown.js b/js/src/dropdown.js
index f38712e47..48125517e 100644
--- a/js/src/dropdown.js
+++ b/js/src/dropdown.js
@@ -126,7 +126,6 @@ class Dropdown {
return
}
- const parent = Dropdown._getParentFromElement(this._element)
const isActive = $(this._menu).hasClass(ClassName.SHOW)
Dropdown._clearMenus()
@@ -135,10 +134,19 @@ class Dropdown {
return
}
+ this.show(true)
+ }
+
+ show(usePopper = false) {
+ if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED) || $(this._menu).hasClass(ClassName.SHOW)) {
+ return
+ }
+
const relatedTarget = {
relatedTarget: this._element
}
const showEvent = $.Event(Event.SHOW, relatedTarget)
+ const parent = Dropdown._getParentFromElement(this._element)
$(parent).trigger(showEvent)
@@ -147,7 +155,7 @@ class Dropdown {
}
// Disable totally Popper.js for Dropdown in Navbar
- if (!this._inNavbar) {
+ if (!this._inNavbar && usePopper) {
/**
* Check for Popper dependency
* Popper - https://popper.js.org
@@ -196,29 +204,6 @@ class Dropdown {
.trigger($.Event(Event.SHOWN, relatedTarget))
}
- show() {
- if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED) || $(this._menu).hasClass(ClassName.SHOW)) {
- return
- }
-
- const relatedTarget = {
- relatedTarget: this._element
- }
- const showEvent = $.Event(Event.SHOW, relatedTarget)
- const parent = Dropdown._getParentFromElement(this._element)
-
- $(parent).trigger(showEvent)
-
- if (showEvent.isDefaultPrevented()) {
- return
- }
-
- $(this._menu).toggleClass(ClassName.SHOW)
- $(parent)
- .toggleClass(ClassName.SHOW)
- .trigger($.Event(Event.SHOWN, relatedTarget))
- }
-
hide() {
if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED) || !$(this._menu).hasClass(ClassName.SHOW)) {
return
@@ -236,6 +221,10 @@ class Dropdown {
return
}
+ if (this._popper) {
+ this._popper.destroy()
+ }
+
$(this._menu).toggleClass(ClassName.SHOW)
$(parent)
.toggleClass(ClassName.SHOW)