当我点击另一个打开模态中的按钮时,我想打开一个新的Bootstrap模式。它工作正常,但问题是 body 标签的'modal-open'类只是消失了,因此会显示整个页面的滚动。
当我单击模态中的按钮时,在代码隐藏中我执行此操作:
ScriptManager.RegisterStartupScript(upMain, typeof(UpdatePanel), "Tipo descuento seleccionado", "$('#DtosModal').modal('show'); $('#tipoDtoModal').modal('hide');", true);
如何将该课程保留在 body 标签中?
非常感谢!
编辑:如果我改变
$(document)
.on('show.bs.modal', '.modal', function () { $(document.body).addClass('modal-open') })
.on('hidden.bs.modal', '.modal', function () { $(document.body).removeClass('modal-open') })
在bootstrap.js中
$(document)
.on('show.bs.modal', '.modal', function () { document.body.className += ' modal-open'; })
.on('hidden.bs.modal', '.modal', function () { document.body.className = document.body.className.replace(" modal-open", ""); })
我解决了这个问题。还有其他更“正统”的想法吗?
答案 0 :(得分:6)
还有其他更“正统”的想法吗?
是的我有,但是非常'正统'的一个:)
// close the modal anyway
$('#' + modalName).modal('hide');
setTimeout(function() {
// needs to be in a timeout because we wait for BG to leave
// keep class modal-open to body so users can scroll
$('body').addClass('modal-open');
}, 400);
我正在使用http://bootboxjs.com/ 在我按下动作按钮后,回调才会触发。所以它不会等到背景消失。
对于Twitter Bootstrap模式似乎是回调的正确解决方案。看这里: How to handle the modal closing event in Twitter Bootstrap?
答案 1 :(得分:1)
引导程序的解决方案是: (Lasoluciónparabootstrapsería:)
$('#nameOfModal').on('hidden.bs.modal', function () {
$('body').addClass('modal-open');
});
答案 2 :(得分:0)
使用事件shown.bs.modal
$('#DtosModal').on('shown.bs.modal', function(){
$('body').addClass('modal-open');
})
请小心使用 shown.bs.modal ,而不要使用 show.bs.modal 。