1

モーダル ダイアログ ボックスの HTML を生成し、その後ダイアログ ボックスをポップアップする Python バックエンドへの ajax 呼び出しを書いています。しかし、最近、私はここで問題を抱えています。私のコード (これまでのところ) は、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」を呼び出そうとしました

throw new Error( msg );

jquery.js (477 行目)

編集: div で dialog("open") または dialog("close") を呼び出すと、同じエラー メッセージが表示されます。同じスタック トレース。変更される唯一のエラーは、「open」メソッドではなく「close」メソッドを呼び出そうとしたことです。

jQueryUI と jQuery の最新バージョンを使用しています。これらを更新するとこの問題が解決するのではないかと考えたからです。サイコロはありません。おそらく私はこの関数のどこかを台無しにしていますが、ajax 呼び出しが返すべき適切な HTML を返していることは確かです。

他のすべてがチェックアウトされます - ID dgf_modal を持つ div があり、それは正常に動作します。しかし、今何が私を台無しにしているのか正確にはわかりません。

4

2 に答える 2

1

さて、私はそれを理解しました。結局のところ、それは私の AJAX 呼び出しであり、ID "dgf_modal" を持つ 2 つの div を返しました。実際にテーブルを閉じるときとは対照的に、テーブルセルを自動的に生成しているときに誤って for ループに入れました。

要するに、私はばかです。

于 2012-11-08T16:00:09.687 に答える
1

open を呼び出す必要はありません。ダイアログを作成するときにautoOpenオプションを使用してください。

于 2012-11-07T21:51:48.333 に答える