0
0
mirror of https://github.com/twbs/bootstrap.git synced 2024-11-29 11:24:18 +01:00

Fix tooltip data-bs-original-title issue (#34842)

This commit is contained in:
GeoSot 2021-08-31 16:11:22 +03:00 committed by GitHub
parent ef21000cbe
commit 51afe026ca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -211,10 +211,7 @@ class Tooltip extends BaseComponent {
this.tip.remove()
}
if (this._popper) {
this._popper.destroy()
}
this._disposePopper()
super.dispose()
}
@ -237,6 +234,14 @@ class Tooltip extends BaseComponent {
return
}
// A trick to recreate a tooltip in case a new title is given by using the NOT documented `data-bs-original-title`
// This will be removed later in favor of a `setContent` method
if (this.constructor.NAME === 'tooltip' && this.tip && this.getTitle() !== this.tip.querySelector(SELECTOR_TOOLTIP_INNER).innerHTML) {
this._disposePopper()
this.tip.remove()
this.tip = null
}
const tip = this.getTipElement()
const tipId = getUID(this.constructor.NAME)
@ -319,10 +324,7 @@ class Tooltip extends BaseComponent {
this._element.removeAttribute('aria-describedby')
EventHandler.trigger(this._element, this.constructor.Event.HIDDEN)
if (this._popper) {
this._popper.destroy()
this._popper = null
}
this._disposePopper()
}
const hideEvent = EventHandler.trigger(this._element, this.constructor.Event.HIDE)
@ -725,6 +727,13 @@ class Tooltip extends BaseComponent {
this._addAttachmentClass(this._getAttachment(state.placement))
}
_disposePopper() {
if (this._popper) {
this._popper.destroy()
this._popper = null
}
}
// Static
static jQueryInterface(config) {