我正在寫一個ajax調用一個python後端,它生成一個模態對話框的HTML並彈出後面的對話框。但是,最近我在這裏遇到問題。我的代碼(到目前爲止)如下JS前端。jQueryUI無法打開模式對話框
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);
}
});
}
我在我的應用程序的另一部分有類似的代碼,它工作得很好。然而,這一個,我發現了以下錯誤:
Error: cannot call methods on dialog prior to initialization; attempted to call method 'open'
throw new Error(msg);
jquery.js (line 477)
編輯:我得到同樣的錯誤消息,如果我叫對話框(「開」)或對話框中的DIV(「親密」)。相同的堆棧跟蹤,唯一改變的錯誤是它試圖調用方法'close'而不是'open'。
我正在使用最新版本的jQueryUI和jQuery,因爲我認爲可能更新它們可以解決此問題。沒有骰子。也許我在這個函數的某處搞亂了,但我確實知道ajax調用正在返回它應該返回的正確的HTML。
其他所有檢查 - 我確實有我的div與ID dgf_modal,並且工作正常。不完全確定現在有什麼搞砸了。
NITPICK:一遍又一遍地做'$(「#dgf_modal」)是不好的習慣。它很慢。將其存儲到一個變量中並參考它。 – epascarello
@epascarello:一旦代碼實際工作,我會擔心這一點,但很好。謝謝。 – Skyline969