bootstrap官方网站上说的很明白:
不支持同时打开多个模态框
千万不要在一个模态框上重叠另一个模态框。要想同时支持多个模态框,需要自己写额外的代码来实现。
但是在实际使用中笔者确实需要打开两个对话框,应用场景如下:
A对话框里面点击按钮打开B对话框(关闭A对话框,然后打开B对话框),在B对话框进行相应操作后通过
代码语言:javascript复制BootstrapDialog.confirm方法弹出提示对话框,提示用户是否要进行某个操作,确认后关闭B对话框,然后打开A对话框,然后奇怪的问题就出现了,A对话框无法滚动至底部(A对话框显示内容较多所以高度比较高)。
问题产生的原因:
代码语言:javascript复制BootstrapDialog.confirm对话框关闭的速度要比A对话框显示的速度滞后,这样就会出现A对话框的modal("show")调用滞后confirm对话框才消失,confirm对话框的消失会删除body的modal-open class属性,这个属性的缺失导致了A对话框无法滚动到底部的问题。
所以要解决这个问题就必须确保confirm对话框消失后再调用A对话框的modal("show")方法,下面就围绕这个思路给出解决方法:
1.
代码语言:javascript复制 BootstrapDialog.confirm({undefined
title: "xx",
message: "xxx?"',
//size: BootstrapDialog.SIZE_LARGE,
type: BootstrapDialog.TYPE_PRIMARY, // <-- Default value is BootstrapDialog.TYPE_PRIMARY
closable: false, // <-- Default value is false
draggable: true, // <-- Default value is false
btnCancelLabel:'放弃',
btnCancelClass: 'btn-primary',// <-- Default value is 'Cancel',
btnOKLabel:'确定', // <-- Default value is 'OK',
btnOKClass: 'btn-danger', // <-- If you didn't specify it, dialog type will be used,
callback:function(result) {undefined
$('.modal').on('hidden.bs.modal', function (){
if($('.modal.in').length > 0){
$("body").addClass("modal-open");
}
});
if(result) {
alert('Yup.');
}else {
alert('Nope.');
}
}
});
上面标红部分就是解决方法,希望帮到遇到类似问题的朋友