jquery对话框关闭不工作“无法在初始化之前调用对话框上的方法;尝试调用方法”

时间:2014-03-10 13:52:51

标签: javascript jquery jquery-ui-dialog

我的jquery对话框关闭时出现以下错误。 jquery 1.9.1 的jquery-UI-1.10.3

错误:在初始化之前无法调用对话框上的方法;试图调用方法'关闭'

//检查列表中是否有给定的回调。

    var popupDialog = $("<div id='popupDialogBox'></div>");
function Popup(url, width, height) {
    if (width == undefined)
        width = 400;
    if (height == undefined)
        height = 300;
    //var buttonArray = {};
    //buttonArray["Close"] = function () {
    //    $(popupDialog).dialog("close");
    //};
    popupDialog.dialog({
        closeOnEscape: false,
        modal: true,
        autoOpen: false,
        resizable: false,
        buttons: [{
            text: "Cancel",
            click: function () {
                $(popupDialog).dialog("close");
            }
        }]
        //buttons: buttonArray,
        //buttons: {
        //    "OK": function () {
        //        //debugger;
        //        //alert('test');
        //        //$(popupDialog).parent().remove();
        //        $(this).dialog("close");
        //        return false;
        //    }
        //}
        //buttons: [{
        //    text: "close",
        //    "class": "button",
        //    close: function () {
        //        $(popupDialog).dialog('close');
        //        //alert('test');
        //    }
        //}]
    });
    popupDialog.load(url + '?popup=1');
    popupDialog.dialog("option", "width", width);
    popupDialog.dialog("option", "height", height);
    popupDialog.dialog('open');
    return false;
}

如果我在$(popupDialog).dialog('close')之前发出警报,那么警报会起作用,但对话框仍然会出现同样的错误

不确定我在这里做错了什么,但似乎没什么用。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您必须先将div添加到DOM中。

更改 var popupDialog = $("<div id='popupDialogBox'></div>");" 是这样的: $("html").append("<div id='popupDialogBox' />"); var popupDialog = $("#popupDialogBox");

然后继续使用您的代码。