我正在写一个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