diff options
author | GeoSot <geo.sotis@gmail.com> | 2022-10-06 11:31:38 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-06 11:31:38 +0300 |
commit | 01dc2f51003947408b1237fd4c58c0f078596378 (patch) | |
tree | 07e791a0b2841ed37064f98144f1b63b31cf2fbc /js | |
parent | bf6240dad9a466e9d3bc682abf416e9e5b4c66df (diff) |
fix tooltip/popper disposal inconsistencies (#37235)
Diffstat (limited to 'js')
-rw-r--r-- | js/src/tooltip.js | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/js/src/tooltip.js b/js/src/tooltip.js index e01f0a4ae5..70198c81bf 100644 --- a/js/src/tooltip.js +++ b/js/src/tooltip.js @@ -172,10 +172,6 @@ class Tooltip extends BaseComponent { EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler) - if (this.tip) { - this.tip.remove() - } - if (this._element.getAttribute('data-bs-original-title')) { this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title')) } @@ -202,10 +198,7 @@ class Tooltip extends BaseComponent { } // todo v6 remove this OR make it optional - if (this.tip) { - this.tip.remove() - this.tip = null - } + this._disposePopper() const tip = this._getTipElement() @@ -218,11 +211,7 @@ class Tooltip extends BaseComponent { EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED)) } - if (this._popper) { - this._popper.update() - } else { - this._popper = this._createPopper(tip) - } + this._popper = this._createPopper(tip) tip.classList.add(CLASS_NAME_SHOW) @@ -281,13 +270,11 @@ class Tooltip extends BaseComponent { } if (!this._isHovered) { - tip.remove() + this._disposePopper() } this._element.removeAttribute('aria-describedby') EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN)) - - this._disposePopper() } this._queueCallback(complete, this.tip, this._isAnimated()) @@ -612,6 +599,11 @@ class Tooltip extends BaseComponent { this._popper.destroy() this._popper = null } + + if (this.tip) { + this.tip.remove() + this.tip = null + } } // Static |