Bootstrap 隐藏模式不触发
Bootstrap modal on hidden does not trigger
如标题所说,我无法将 modal.on('hidden') 事件发送到 运行。我可以毫无问题地打开模式。我使用的代码看起来像这样:
var info = $('<img src="img/icons/info.png">');
info.attr('data-toggle','modal');
info.attr('data-target','#infoPopup');
模态本身看起来像这样:
<div class="modal fade" id="infoPopup" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 id="popupHeader" class="modal-title"></h4>
</div>
<div id="popupBody" class="modal-body">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
它打开得很好,但当我通过单击模式旁边的关闭按钮或右上角的 X 关闭它时,似乎没有触发隐藏事件。
$('.modal.in').on('hidden',function(){
console.log('test');
});
当我尝试使用 $('.modal.in')
在控制台上访问它时,所选模式是正确的。所以我不想在错误的模式上获得回调。我也用 $('.modal.in').on('hidden.bs.modal',func...)
试过了。但是我得到了相同的结果。
感谢您的帮助。
对于bootstrap 3 你需要使用hidden.bs.modal
$('.modal.in').on('hidden.bs.modal', function () {
// do something…
})
如果你的模式不在 DOM 加载时这应该可以工作
$(document).on('hidden.bs.modal','.modal.in', function () {
// do something…
})
而不是使用 .modal.in,而是使用您想要触发事件的模态的 ID。如果您想将它用于所有模态,只需使用 .modal 而不是 .modal.in 并且您将在 hidden.bs.modal
上使用
这里有一个fiddleFiddle
$('#infoPopup').on('hidden.bs.modal',function(){
alert("Modal Closed");
});
如标题所说,我无法将 modal.on('hidden') 事件发送到 运行。我可以毫无问题地打开模式。我使用的代码看起来像这样:
var info = $('<img src="img/icons/info.png">');
info.attr('data-toggle','modal');
info.attr('data-target','#infoPopup');
模态本身看起来像这样:
<div class="modal fade" id="infoPopup" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 id="popupHeader" class="modal-title"></h4>
</div>
<div id="popupBody" class="modal-body">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
它打开得很好,但当我通过单击模式旁边的关闭按钮或右上角的 X 关闭它时,似乎没有触发隐藏事件。
$('.modal.in').on('hidden',function(){
console.log('test');
});
当我尝试使用 $('.modal.in')
在控制台上访问它时,所选模式是正确的。所以我不想在错误的模式上获得回调。我也用 $('.modal.in').on('hidden.bs.modal',func...)
试过了。但是我得到了相同的结果。
感谢您的帮助。
对于bootstrap 3 你需要使用hidden.bs.modal
$('.modal.in').on('hidden.bs.modal', function () {
// do something…
})
如果你的模式不在 DOM 加载时这应该可以工作
$(document).on('hidden.bs.modal','.modal.in', function () {
// do something…
})
而不是使用 .modal.in,而是使用您想要触发事件的模态的 ID。如果您想将它用于所有模态,只需使用 .modal 而不是 .modal.in 并且您将在 hidden.bs.modal
上使用这里有一个fiddleFiddle
$('#infoPopup').on('hidden.bs.modal',function(){
alert("Modal Closed");
});