问题
多个modal打开出现Id冲突情况,导致modal无法关闭
解决方案
动态添加当前modal框id
//通用打开模态窗口
has.common.openModal = function(options){
var defaults = {
"url": "",
"modalDiv":true//是否创建最外层class="modal fade"的div,因为有的打开的页面需要,有的不需要
};
var settings = $.extend(defaults, options);
var t = new Date().getTime();
var id = "tmpdiv_"+t;
var url = settings.url;
if (url.indexOf("?")>=0) {
url = url+"&divid="+id;
}else{
url = url+"?divid="+id;
}
var div = document.createElement("div");
div.id = id;
if(settings.modalDiv){
div.setAttribute("class", "modal fade");
div.setAttribute("role", "dialog");
}
$("body").append(div);
$("#"+id).load(url,function(response,status,xhr){
$('#'+id).on('hidden.bs.modal',function(e){
//$("#"+id).modal("dispose");
$('#'+id).empty();
$('#'+id).remove();
$("body").find(".modal").each(function(e){
var bl = $(this).css("display");
if(bl=="block"){
$("body").toggleClass("modal-open",true);
return false;
}
});
}).modal({show:true,backdrop:false,keyboard:false});
});
}