jQueryUI无法打开模态对话框

时间:2012-11-07 21:38:13

标签: javascript jquery jquery-ui

我正在写一个对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);
                }
        });
}

我在我的应用程序的另一部分中有类似的代码可以正常工作。但是,有了这个,我收到以下错误:

  

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

     

抛出新错误(msg);

     

jquery.js(第477行)

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

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

其他一切都检查出来 - 我确实拥有ID为dgf_modal的div,并且工作正常。不过现在还不确定是什么搞砸了我。

2 个答案:

答案 0 :(得分:1)

没有理由打开,在创建对话框时使用autoOpen选项。

答案 1 :(得分:1)

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

简而言之,我是个白痴。