Javascript 错误:初始化前无法在对话框上调用方法;试图调用方法';关闭';
不断获取调用方法错误,不确定还要尝试什么。我在另一个程序中使用了它,但在ajax函数中没有。我试过在“close”(接近)和“close”(接近)中接近,但还是没有运气。当用户在对话框模式外单击时,尝试使其关闭当前打开模式Javascript 错误:初始化前无法在对话框上调用方法;试图调用方法';关闭';,javascript,jquery,ajax,function,Javascript,Jquery,Ajax,Function,不断获取调用方法错误,不确定还要尝试什么。我在另一个程序中使用了它,但在ajax函数中没有。我试过在“close”(接近)和“close”(接近)中接近,但还是没有运气。当用户在对话框模式外单击时,尝试使其关闭当前打开模式 function viewForm(record_id) { $.ajax({ type: "POST", url: "/info_notifications/fetch_pending_changes", data:
function viewForm(record_id) {
$.ajax({
type: "POST",
url: "/info_notifications/fetch_pending_changes",
data: "_unique_id=" + record_id,
success: function (msg) {
document.getElementById('dialog').innerHTML = msg;
var closedialog;
function overlayclickclose() {
if (closedialog) {
$('#dialog').dialog('close'); //<--this is the method its attempting to call
}
//set to one because click on dialog box sets to zero
closedialog = 1;
}
$('#open').click(function () {
$('#dialog').dialog("open");
closedialog = 0;
});
$("#dialog").dialog({
resizable: true,
width: 'auto',
height: 'auto',
open: function () {
closedialog = 1;
$(document).bind('click', overlayclickclose);
},
focus: function () {
closedialog = 0;
},
close: function () {
$(document).unbind('click');
},
closeText: "Close",
buttons: {
"Update": function () {
$.ajax({
type: "POST",
url: "/info_notifications/update_notification",
data: "_unique_id=" + record_id,
success: function (msg) {
$(document).ajaxStop(function () {
location.reload(true);
});
}
});
},
"Approve": function () {
$.ajax({
type: "POST",
url: "/info_notifications/approve_request",
data: "_unique_id=" + record_id + "&status=approve",
success: function (msg) {
$(document).ajaxStop(function () {
location.reload(true);
});
}
});
},
"Deny": function () {
$.ajax({
type: "POST",
url: "/info_notifications/approve_request",
data: "_unique_id=" + record_id + "&status=deny",
success: function (msg) {
$(document).ajaxStop(function () {
location.reload(true);
});
}
});
},
"Cancel": function () {
click: $(this).dialog("close");
}
},
close: function () {
$(document).unbind('click');
}
});
}
});
var closedialog;
function overlayclickclose() {
if (closedialog) {
$('#dialog').dialog('close'); //<--this is the method its attempting to call
}
//set to one because click on dialog box sets to zero
closedialog = 1;
}
}
函数视图表单(记录id){
$.ajax({
类型:“POST”,
url:“/info\u通知/fetch\u挂起的更改”,
数据:“\u unique\u id=“+记录\u id,
成功:功能(msg){
document.getElementById('dialog')。innerHTML=msg;
关闭对话框;
函数overcyclickclose(){
如果(关闭对话框){
$(“#dialog”).dialog('close');//请修复缩进。您试图在初始化对话框之前关闭它。修复您的逻辑。将关闭逻辑放在末尾我仍然会遇到相同的错误,除非您将代码的编辑版本放在此处。除非这不是您的意思。为什么需要overcyclickclose()
?为什么不能在需要关闭对话框时使用$('#dialog')。dialog('close');
?定义函数的位置并不重要。重要的是,在初始化对话框之前,您正在以某种方式执行函数。