Bootstrap - 打开模态,而另一个模态打开,并在体内保持'模态打开'类

时间:2015-08-05 11:55:25

标签: twitter-bootstrap bootstrap-modal

当我点击另一个打开模态中的按钮时,我想打开一个新的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", ""); })

我解决了这个问题。还有其他更“正统”的想法吗?

3 个答案:

答案 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