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

ensure hidePrevented.bs.modal can be prevented (#31696)

This commit is contained in:
Joakim Riedel 2020-09-21 13:41:40 +02:00 committed by GitHub
parent ab0aec397e
commit b0a0c56788
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 40 additions and 1 deletions

View File

@ -234,7 +234,7 @@ class Modal {
const hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED)
$(this._element).trigger(hideEventPrevented)
if (hideEventPrevented.defaultPrevented) {
if (hideEventPrevented.isDefaultPrevented()) {
return
}

View File

@ -976,4 +976,43 @@ $(function () {
backdrop: 'static'
})
})
QUnit.test('should get modal-static class when clicking outside of modal-content if backdrop = static', function (assert) {
assert.expect(1)
var done = assert.async()
var $modal = $('<div class="modal" data-backdrop="static"><div class="modal-dialog" style="transition-duration: 20ms;"/></div>').appendTo('#qunit-fixture')
$modal.on('shown.bs.modal', function () {
$modal.trigger('click')
setTimeout(function () {
assert.ok($modal.hasClass('modal-static'), 'has modal-static class')
done()
}, 0)
})
.bootstrapModal({
backdrop: 'static'
})
})
QUnit.test('should not get modal-static class when clicking outside of modal-content if backdrop = static and event is prevented', function (assert) {
assert.expect(2)
var done = assert.async()
var $modal = $('<div class="modal" data-backdrop="static"><div class="modal-dialog" style="transition-duration: 20ms;"/></div>').appendTo('#qunit-fixture')
$modal.on('hidePrevented.bs.modal', function (e) {
assert.ok(true, 'should trigger hidePrevented event')
e.preventDefault()
})
$modal.on('shown.bs.modal', function () {
$modal.trigger('click')
setTimeout(function () {
assert.notOk($modal.hasClass('modal-static'), 'should not have modal-static class')
done()
}, 0)
})
.bootstrapModal({
backdrop: 'static'
})
})
})