对话框内的Bootbox对话框

我最近被分配到一个使用bootbox的项目,我当前的一个问题是在一个已经打开之后打开另一个对话框。 问题是在打开第二个对话框后,背景阴影不会覆盖第一个对话框。 有没有办法打开覆盖第一个对话框的第二个对话框?

编辑

function Confirm(question, callBack) { bootbox.confirm(question, callBack); } 

如果执行两次,它将显示两个弹出窗口,但第一个不会被阴影覆盖。

从Bootstrap文档 (Bootbox基于):

不支持多个打开模态。

没有什么可以阻止你打开多个模态,但CSS没有设置为处理叠加层的多个层。 为了实现这一目标,您需要调整(至少)新叠加层的z-index值,这可能还需要与第二个模态的z-index相比较。

您可以通过调整原始模态的z-index来略微小于叠加层。 事实上,这是一个certificate这种行为的例子:

https://jsfiddle.net/Lu1wp3nn/

CSS:

 .push-back { z-index: 100; } 

使用Javascript:

 $(function () { var dialog1 = bootbox.alert({ message: "I'm the first!" }); setTimeout(function () { var dialog2 = bootbox.alert({ message: "I'm the second", size: 'small', backdrop: false }).init(function () { dialog1.addClass('push-back'); }).on('hidden.bs.modal', function (e) { dialog1.removeClass('push-back'); }); }, 3000); }); 

setTimeout只是为了让你看到第一个示例对话框。 3秒后,加载第二个对话框,您将看到第一个对话框在叠加层下移动。

为了避免更暗的叠加,此示例还使用“backdrop:false”省略了它自己的叠加层。 我选择忽略了一些警告; 例如,如果第一个模态允许通过单击背景来解除模态,则可以在不解除第二个模态的情况下关闭第一个模态。

init()函数可能是附加’push-back’类(或等效类init()的最佳位置,但是如果你能找到一个适合你的解决方案,那么运行它。

唯一需要注意的是,当第二个模态关闭时,你想要删除’push-back’类,否则你将无法与第一个模态进行交互。