0
0
mirror of https://github.com/twbs/bootstrap.git synced 2025-01-18 10:52:19 +01:00

Tooltip - check if tip and its parent node exist in dispose method (#32420)

This commit is contained in:
Rohit Sharma 2020-12-11 00:36:41 +05:30 committed by GitHub
parent 1edec546cb
commit 4535b09c46
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 1 deletions

View File

@ -222,7 +222,7 @@ class Tooltip extends BaseComponent {
EventHandler.off(this._element, this.constructor.EVENT_KEY)
EventHandler.off(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)
if (this.tip) {
if (this.tip && this.tip.parentNode) {
this.tip.parentNode.removeChild(this.tip)
}

View File

@ -286,6 +286,24 @@ describe('Tooltip', () => {
expect(Tooltip.getInstance(tooltipEl)).toEqual(null)
})
it('should destroy a tooltip after it is shown and hidden', () => {
fixtureEl.innerHTML = '<a href="#" rel="tooltip" title="Another tooltip">'
const tooltipEl = fixtureEl.querySelector('a')
const tooltip = new Tooltip(tooltipEl)
tooltipEl.addEventListener('shown.bs.tooltip', () => {
tooltip.hide()
})
tooltipEl.addEventListener('hidden.bs.tooltip', () => {
tooltip.dispose()
expect(tooltip.tip).toEqual(null)
expect(Tooltip.getInstance(tooltipEl)).toEqual(null)
})
tooltip.show()
})
it('should destroy a tooltip and remove it from the dom', done => {
fixtureEl.innerHTML = '<a href="#" rel="tooltip" title="Another tooltip">'