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