javascript - 超出最大调用堆栈大小。在对话框中打开

标签 javascript jquery jquery-ui

在我的项目中,我有一个显示两个按钮(确认和取消)操作的对话框。但是当出现这种情况时,如果我移动或单击具有与我关联的功能的按钮,则会导致此错误:

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
);

我做错了什么?

最佳答案

modal:false 上使用 modal:true 修复(更好的方法是删除此参数)。

关于javascript - 超出最大调用堆栈大小。在对话框中打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33196044/

相关文章:

javascript - 回调后重复函数而不延迟(Jquery)

jquery - 如何使用 <asp :button>? 强制关闭 jQuery UI Accordion <DIV>

c# - 开发者工具 (F12) Internet Explorer 空控制台,但 Firefox 不支持

javascript - 如何查找在gsp中选择了哪个链接

javascript - 如何从 JS 数组创建 JS 对象?

jquery - Bootstrap 词缀插件有时会在页面底部失败

jquery - Laravel Ajax删除: 405 Error - Method Not Allowed

javascript - 使用 Javascript 按值对 JSON 数组对象进行排序

JQuery 内部文档

jQuery 对话框调整大小事件