2
在我的项目中,我有一个对话框显示两个按钮(确认和取消)。但是,当这似乎,如果我移动或我对与我相关的功能的按钮单击导致此错误:超过最大调用堆栈大小。在对话框中打开
Uncaught RangeError: Maximum call stack size exceeded.
这是显示该对话框的功能:
displayConfirmMessageBox: function(title, message, messageButtons) {
if(title == undefined || title == ''){
title = "<No message>";
}
if(message == undefined || message == ''){
message = "<No message>";
}
if(messageButtons == undefined){
messageButtons = {};
messageButtons[EALang['close']] = function(){
jQuery("#message_box_confirm").dialog("close");
};
}
jQuery("#message_box_confirm").dialog("destroy");
jQuery("#message_box_confirm").remove();
jQuery("body").append(
"<div id='message_box_confirm' title='" + title + "'>" +
"<p>" + message + "</p>" +
"</div>"
);
jQuery("#message_box_confirm").dialog({
autoOpen : false,
modal : true,
resize : "auto",
width : 400,
height : "auto",
resizable : false,
buttons : messageButtons,
closeOnEscape : true
});
jQuery("#message_box_confirm").dialog("open");
jQuery(".ui-dialog .ui-dialog-buttonset button").addClass('btn');
jQuery("#message_box_confirm .ui-dialog-titlebar-close").hide();
},
这是函数调用的displayConfirmMessageBox
:
var messageButtons = {};
messageButtons['OK'] = function(){
conferma = true;
BackendCalendar.completeAppointmentStore(conferma, successCallback, errorCallback);
};
messageButtons[EALang['cancel']] = function(){
conferma = false;
$('#message_box_confirm').dialog('close');
};
GeneralFunctions.displayMessageBox(
EALang['delete_resource_confirmation'],
EALang['warning_resource'],
messageButtons
);
什么我做错了吗?
在你的代码中似乎没有任何东西可以抛出这样的错误。这很可能是您的代码的其他部分。 ([的jsfiddle](http://jsfiddle.net/gz46bpzs/))。你应该寻找一个调用另一个函数的函数,然后再调用另一个函数,等等......直到达到调用堆栈限制。 –
如何查看导致错误的原因?因为我的文件很大2469行! – Dillinger