mirror of
https://github.com/twbs/bootstrap.git
synced 2025-01-30 22:52:24 +01:00
Fix bug where backdrop calls method on null if it is already removed from the body (#34014)
Co-authored-by: Rohit Sharma <rohit2sharma95@gmail.com>
This commit is contained in:
parent
d64466a248
commit
a2b5901efc
@ -116,7 +116,11 @@ class Backdrop {
|
||||
|
||||
EventHandler.off(this._element, EVENT_MOUSEDOWN)
|
||||
|
||||
this._getElement().parentNode.removeChild(this._element)
|
||||
const { parentNode } = this._getElement()
|
||||
if (parentNode) {
|
||||
parentNode.removeChild(this._element)
|
||||
}
|
||||
|
||||
this._isAppended = false
|
||||
}
|
||||
|
||||
|
@ -129,6 +129,25 @@ describe('Backdrop', () => {
|
||||
})
|
||||
})
|
||||
|
||||
it('should not error if the backdrop no longer has a parent', done => {
|
||||
const instance = new Backdrop({
|
||||
isVisible: true,
|
||||
isAnimated: true
|
||||
})
|
||||
const getElements = () => document.querySelectorAll(CLASS_BACKDROP)
|
||||
|
||||
instance.show(() => {
|
||||
instance.hide(() => {
|
||||
expect(getElements().length).toEqual(0)
|
||||
|
||||
// replace the fixture, which was just wiped out
|
||||
fixtureEl = getFixture()
|
||||
done()
|
||||
})
|
||||
document.body.innerHTML = 'changed'
|
||||
})
|
||||
})
|
||||
|
||||
describe('click callback', () => {
|
||||
it('it should execute callback on click', done => {
|
||||
const spy = jasmine.createSpy('spy')
|
||||
|
Loading…
x
Reference in New Issue
Block a user