我正在以这种方式打开模态对话框:
let myModal = new bootstrap.Modal('#myModal', {
keyboard: false,
backdrop: 'static'
});
#myModal
其中有一个按钮,我将点击事件绑定到模态shown
事件中。
$('#myModal').on('shown.bs.modal', event => {
$('#btnMyButton').on('click', function ()
{
console.log('Was clicked!');
});
});
当我关闭模式时,我正在解除事件的绑定:
$('#myModal').on('hidden.bs.modal', event => {
$('#btnMyButton').off('click');
$('#myModal').off('show.bs.modal');
$('#myModal').off('shown.bs.modal');
$('#myModal').off('hidden.bs.modal');
myModal.dispose();
console.log('hidden here!');
})
问题是,当我第一次显示模态对话框并按下按钮时,click
事件被调用一次。
如果我关闭对话框并再次打开它,Click 事件将被调用两次,依此类推。
如何正确解除绑定点击事件?为什么myModal.dispose()
不自动解除绑定事件?