超出最大调用堆栈大小。在对话框中打开
2015-10-18
7485
在我的项目中,我有一个对话框,其中显示两个按钮(确认和取消)操作。但是当出现此对话框时,如果我移动或单击与我关联的函数的按钮,则会导致此错误:
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
);
我做错了什么?
2个回答
使用
modal: true
修复
modal:false
(更好的方法是删除此参数)。
Dillinger
2015-10-18
如果您不想将模态属性设置为false,则可以覆盖对话框模块...
将以下代码添加到 脚本文件 ,一切都很好( 脚本文件 应在“ jquery-ui.js”之后加载)
998213445
Hamed Khatami
2019-10-02