我必须听取所有模态隐藏事件,使用自举标准事件:
$(document).on("hidden.bs.modal",".modal",function(){
...
});
我还需要将此事件用于bootbox对话框,但这不起作用。查看我发现的bootbox源代码(https://github.com/makeusabrew/bootbox/blob/master/bootbox.js的第659行):
dialog.one("hidden.bs.modal", function(e) {
// ensure we don't accidentally intercept hidden events triggered
// by children of the current dialog. We shouldn't anymore now BS
// namespaces its events; but still worth doing
if (e.target === this) {
dialog.remove();
}
});
如果在我的回调之前调用了这个bootbox回调,我就毫无希望,因为这会破坏调用对象。
是否可以绕过这个问题?如何调用所有模态隐藏事件(也适用于bootbox模态)?
答案 0 :(得分:1)
您可以在版本5.4中使用“ onHidden”。
bootbox.alert({
message: 'You message',
onHidden: function(e) {
/* e is the hide.bs.modal event */
if($(".modal").hasClass('show')){
$('body').addClass('modal-open');
}
}
});
答案 1 :(得分:0)
假设可以封装...
代码,您可以为您进行的每个Bootbox调用订阅该事件。类似的东西:
function doSomethingWhenModalCloses(){
...
}
bootbox
.alert('I am an alert!')
.on('hidden.bs.modal', doSomethingWhenModalCloses); // repeat for other functions
这显然不是最优的,但Bootbox并没有真正提供以全局方式委派这些事件的内置方式。
答案 2 :(得分:0)
所以我知道这是一篇旧文章,但未得到答复。这是我的工作解决方案
dialog.on('hidden.bs.modal', function () {
console.log('SHOW ME WHEN HIDDEN!')
})
为了在上下文中显示它,我做了一个jsFiddle