Javascript jQueryUI无法打开模式对话框

Javascript jQueryUI无法打开模式对话框,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我正在编写一个对python后端的ajax调用,该调用为一个模式对话框生成HTML,然后弹出该对话框。然而,最近我在这里遇到了一些问题。我的JS前端代码(到目前为止)如下所示 var deletegroup = function(group){ $.ajax({ url: "ajax.py/get_orphaned_networks", data: {group: group}, su

我正在编写一个对python后端的ajax调用,该调用为一个模式对话框生成HTML,然后弹出该对话框。然而,最近我在这里遇到了一些问题。我的JS前端代码(到目前为止)如下所示

var deletegroup = function(group){
        $.ajax({
                url: "ajax.py/get_orphaned_networks",
                data: {group: group},
                success: function(result){
                        if (result == 0){
                                alert("Group does not contain networks, no networks will be deleted.");
                        } else {
                                $("#dgf_modal").html(result);
                                $("#dgf_modal").css('visibility', 'visible');
                                $("#dgf_modal").dialog({
                                        modal: true,
                                        closeOnEscape: false,
                                        resizable: false,
                                        draggable: false,
                                        title: "Deleting Group",
                                        width: 500,
                                        height: 500,
                                        buttons: {
                                                "Yes" : function(){
                                                        alert("Well, okay then.");
                                                        $("#dgf_modal").dialog("close");
                                                },
                                                "Cancel" : function(){
                                                        $("#dgf_modal").dialog("close");
                                                }
                                        },
                                        close: function(){
                                                $("#dgf_modal").html("");
                                                $("#dgf_modal").css('visibility', 'hidden');
                                                $(this).dialog("destroy");
                                        }
                                });
                                $("#dgf_modal").dialog("open");
                        }
                },
                error: function(){
                        setlongmessage("An error has occurred. Contact your system administrator.");
                        $("#dgf_status").html("<img src='images/error.png' alt='An error occured.'/>");
                        setTimeout(function(){$("#dgf_status").html("");}, 3000);
                }
        });
}
var deletegroup=函数(组){
$.ajax({
url:“ajax.py/get\u孤立网络”,
数据:{group:group},
成功:功能(结果){
如果(结果==0){
警报(“组不包含网络,不会删除任何网络。”);
}否则{
$(“#dgf_modal”).html(结果);
$(“#dgf_modal”).css(‘可见性’、‘可见’);
$(“#dgf_模式”)。对话框({
莫代尔:是的,
closeOnEscape:错误,
可调整大小:false,
可拖动:错误,
标题:“删除组”,
宽度:500,
身高:500,
按钮:{
“是”:函数(){
警惕(“那么好吧。”);
$(“#dgf_模式”)。对话框(“关闭”);
},
“取消”:函数(){
$(“#dgf_模式”)。对话框(“关闭”);
}
},
关闭:函数(){
$(“#dgf_modal”).html(“”);
$(“#dgf_modal”).css(‘可见性’、‘隐藏’);
$(此).dialog(“销毁”);
}
});
$(“#dgf_模式”)。对话框(“打开”);
}
},
错误:函数(){
setlongmessage(“发生错误。请与系统管理员联系。”);
$(“#dgf_状态”).html(“”);
setTimeout(function(){$(“#dgf_status”).html(“”;},3000);
}
});
}
我的应用程序的另一部分中也有类似的代码,它运行得很好。但是,通过这一步,我得到了以下错误:

错误:初始化前无法在对话框上调用方法; 试图调用方法“open”

抛出新错误(msg)

jquery.js(第477行)

编辑:如果在div上调用dialog(“open”)或dialog(“close”),我会收到相同的错误消息。同一堆栈跟踪,唯一改变的错误是它试图调用方法“close”而不是“open”

我正在使用jQueryUI和jQuery的最新版本,因为我认为更新它们可能会解决这个问题。没有骰子。也许我把这个函数搞砸了,但我确实知道ajax调用正在返回它应该返回的正确HTML


其他一切都检查出来了——我的div的ID为dgf_modal,这很好。不过,我现在不太清楚到底是什么搞砸了。

没有理由调用open,请在创建对话框时使用该选项

好吧,我已经弄明白了。毕竟这是我的AJAX调用,返回了两个id为“dgf_modal”的div。当我自动生成表格单元格时,意外地将其放入for循环中,而不是在最后关闭表格时


简而言之,我是个白痴。

挑剔:一遍又一遍地做
$(“#dgf_modal”)
是一种糟糕的做法。它很慢。将它存储到一个变量中并引用它。@epascarello:一旦代码实际运行,我会担心这个问题,但这是个好问题。谢谢你,谢谢你的洞察力。然而,它似乎并没有解决我所有的问题。我会用更多信息更新帖子。