モーダル ダイアログ ボックスの 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 があり、それは正常に動作します。しかし、今何が私を台無しにしているのか正確にはわかりません。