Я использую модальный плагин jQuery на моем сайте. В большинстве мест плагин работает хорошо, но в одном или двух местах, когда я нажимаю на кнопку закрытия, расположенную за пределами модального окна, по какой-то причине требуется 2-3 щелчка, чтобы закрыть его.
Я получаю эту ошибку 2 раза после этого то же действие преобразуется в закрытие модального:
Uncaught TypeError: Cannot read property 'fadeOut' of null
at o.modal.unblock (jquery.modal.min.js:5)
at o.modal.close (jquery.modal.min.js:5)
at HTMLAnchorElement.o.modal.close (jquery.modal.min.js:5)
at HTMLDocument.dispatch (jquery-3.1.1.min.js:3)
at HTMLDocument.q.handle (jquery-3.1.1.min.js:3)
at Object.trigger (jquery-3.1.1.min.js:4)
at HTMLAnchorElement.<anonymous> (jquery-3.1.1.min.js:4)
at Function.each (jquery-3.1.1.min.js:2)
at r.fn.init.each (jquery-3.1.1.min.js:2)
at r.fn.init.trigger (jquery-3.1.1.min.js:4)
Есть предложения, как это решить?
Редактировать:
Модальное закрытие инициируется :
$('#addressBookFrom .close-modal').trigger('click')
, который находится внутри события onClick
body.on('click', '#addressBookTo .js-expand-parent', function (e) {
e.preventDefault()
// some logic ...
$('#addressBookTo .close-modal').trigger('click')
})
})
Edit # 2:
Хорошо, так что я понял это. Проблема заключалась в том, что на каждом сайте была эта функция со следующим:
smartex.modal = function () {
$('a.modal-open').click(function (e) {
e.preventDefault()
$(this).modal({
fadeDuration: 200,
closeExisting: false
})
$($(this).attr('href')).remove()
})
}
Теперь, если эта функция вызывается более одного раза, вам нужно было нажимать для каждого вызова этой функции.