jQuery:对话框没有正确打开第二次

Mit*_*tel 2 jquery

我创建了一个jQuery对话框.下面是我创建它的Ajax函数.

$.ajax({
    url: "/StaffManageCertifications/GetExamCodesAndCategory/",
    type: "Post",
    datatype: "html",
    success: function (data) {
        debugger;
        $('#divExamCodesCategory').html(data);
        $("#divExamCodesCategory").dialog({
            autoOpen: false,
            width: 700,
            height: 610,
            modal: true,
            resizable: false,
            draggable: true,
            title: 'Add Exam Code/Category'
        });
        $("#divExamCodesCategory").dialog("open");
        $('a.ui-dialog-titlebar-close').remove();
        $('#divProcessImage').css({
            "display": "none"
        });
    },
    error: function (req, status, error) {
        ErrorMessageStaff(req.responseText);
        $('#screen').css({
            "display": "block",
            "width": "",
            "height": ""
        });
        $('#divProcessImage').css({
            "display": "none"
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

现在,我在div = divExamCodesCategory上放置了两个按钮(Ok和Cancel).

并且在我关闭它时,每次都在代码行下面写下来销毁这个对话框.

$("#divExamCodesCategory").dialog("destroy");
Run Code Online (Sandbox Code Playgroud)

现在,当我第二次打开它时,第一次点击 - 它没有显示对话框.在第二次点击时 - 它确实显示对话但没有数据.空对话框.

此外,它不是在屏幕的中心.它下降到屏幕的底部.下面是此对话框的位置样式.

.ui-dialog {
    padding: 0em !important;
    position: fixed !important;
}
Run Code Online (Sandbox Code Playgroud)

对此有任何帮助表示赞赏.

谢谢.

Aln*_*tak 5

如果您打算在每次关闭时销毁对话框,则需要在对话框的关闭处理程序中完成:

$(...).dialog({
    ...,
    close: function() {
        $(this).dialog('destroy');
    }
});
Run Code Online (Sandbox Code Playgroud)

就目前而言,如果您(未示出)destroy调用紧跟在此AJAX调用之后,正如您所描述的那样,它实际上会立即发生,因为AJAX调用是异步的并且直接完成.

ps而不是使用$.css({'display': 'none'}),只需使用.hide()