我有一个页面,我希望在其中有几个由SimpleModal实现的模态窗口的实例。具体情况如下:
现在,我已经找到了答案,我看到了Eric Martin(SimpleModal的开发者)的几篇文章,谈论了多个模态窗口。似乎SimpleModal不支持它,他建议的是用新的内容替换模态的内容。
我要做的是:
我的问题是,当我尝试运行最后一个命令时,它不起作用。在调查之后,如果在某个元素上调用了modal()函数,那么SimpleModal插件的实现似乎会保留一个标志。
仅为一般知识:
好像我在JS中的第216行:
//不允许多次通话 if(s.d.data){ 返回false; }
我的代码就在本节之后: 我首先运行“jBtnNew_Click”的逻辑:
Admin.BL.SettingsPage.jBtnNew_Click=function(e)
{
Admin.BL.EcmSettings.ShowDialog("#getSubsidiariesForCustomer");
alert(""); //Just for debugging
Admin.BL.EcmSettings.ShowAlert();
}
Admin.BL.SettingsPage.ShowAlert=function()
{
var id = $("div.model:visible").eq(0).attr("id");
$("#alertBtnOk").one("click", function(e){
$.modal.close();
if (id != undefined)
{
Admin.BL.SettingsPage.ShowDialog(id);
}
}
);
Admin.BL.SettingsPage.ShowDialog("#alert");
}
Admin.BL.SettingsPage.ShowDialog=function(dialogId)
{
if (dialogId.indexOf("#") < 0)
{
dialogId = "#" + dialogId;
}
$("div.model").hide();
$("#dialog").modal({position:new Array("20%"),
overlayId:"dialog-overlay",
containerId:"confirm-container"});
$(dialogId).show();
}
这是我的HTML:
获取客户的子公司 顾客ID: 顾客姓名: 这是我的警报
欢迎任何有关解决此问题的帮助!!
谢谢:)
答案 0 :(得分:2)
我认为您的问题(#4)可能与我在SimpleModal中使用的setTimeout
代码一起处理Opera问题。我需要将其删除,但是现在您可以通过查找以下内容来尝试编辑SimpleModal源:
setTimeout(function(){
// opera work-around
s.d.overlay.remove();
// reset the dialog object
s.d = {};
}, 10);
将其替换为:
s.d.overlay.remove();
// reset the dialog object
s.d = {};
如果这对您不起作用,请告诉我......