我有一个模态窗口,第一次点击它时工作得很好,但是如果你关闭它并尝试再次点击链接来触发它,它似乎在代码中创建了一个全新的模态对话框。
这是一个问题,因为现在我有2个。我要么想办法阻止这种情况发生(并且只是在同一个对话框上进行隐藏/显示)或者在关闭时将其销毁。
我尝试了破坏路径并且我已经看到了几个非常helpful posts但我似乎无法让我的代码正常工作。到目前为止,这是我的代码:
模态与Actionlink
@Html.ActionLink("Send Email", "SendErrorEmail", "Support", new { id = Model.jcode },
new { @class = "openDialog btn btn-inverse", data_dialog_id = "sendErrorDialog", data_dialog_title = "Send Email", @id = "senderror" })
这是我的javascript代码:
$(".openDialog").on("click", function (e) {
e.preventDefault();
$('#loadingdiv').show();
$("<div></div>")
.addClass("dialog")
.attr("id", $(this).attr("data-dialog-id"))
.appendTo("body")
.dialog({
title: $(this).attr("data-dialog-title"),
modal: true,
draggable: true,
resizable: false,
width: modalwidth,
dialogClass: "popup1"
})
.load(this.href, function () {
$('#loadingdiv').hide();
})
});
我知道我需要添加类似on.("hidden"...
的内容,但我似乎无法让它发挥作用。
答案 0 :(得分:2)
这是破坏对话框的方法:
$( ".selector" ).dialog( "destroy" );
这是打开现有对话框的方式,无需销毁:
$( ".selector" ).dialog( "open" );
如果要检查该div是否在对话框中,可以使用以下内容:
if ($('#divId').closest('.ui-dialog').length === 0)
// not in a dialog.