diff options
| author | Johann-S <[email protected]> | 2019-08-25 18:12:02 +0200 |
|---|---|---|
| committer | XhmikosR <[email protected]> | 2019-08-27 16:32:25 +0300 |
| commit | ef1c7aadbc61c69e03ecc7c6e13bdccd1901cbd4 (patch) | |
| tree | aa936dcac6452b6e63259a58a01604da0e9ca05d /js/src | |
| parent | dd181e91bd174776cf81a8747d39d1d2f89c339e (diff) | |
| download | bootstrap-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.js | 39 |
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) |
