0

我有一个模态窗口,当您第一次单击它时效果很好,但如果您关闭它并尝试单击链接再次触发它,它似乎在代码中创建了一个全新的模态对话框。

这是一个问题,因为现在我有 2 个。我要么需要找到一种方法来阻止这种情况的发生(只需在同一个对话框上进行隐藏/显示),要么在关闭时将其销毁。

我尝试了破坏路径,并且看到了一些非常有用的帖子,但我似乎无法让我的代码正常工作。到目前为止,这是我的代码:

模态绑定到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"...但我似乎无法让它工作。

4

1 回答 1

2

这是您销毁对话框的方式:

$( ".selector" ).dialog( "destroy" );

这是您打开现有对话框的方式,无需销毁:

$( ".selector" ).dialog( "open" );

对话文档

如果要检查该 div 是否在对话框中,可以使用以下内容:

if ($('#divId').closest('.ui-dialog').length === 0) 
    // not in a dialog.
于 2013-02-22T07:32:06.200 回答