切换模式后的javascript错误

时间:2015-08-07 08:03:47

标签: javascript jquery twitter-bootstrap

我刚刚开始使用bootstrap,我收到一个javascript错误,我不知道如何管理。

我在第一列中有一个带有复选框的数据表。选择一些复选框后,您可以单击两个按钮,打开一个带有不同消息的模式以接受或取消。但如果没有勾选复选框,我会显示一个信息提示(也是引导程序),我需要“关闭”模态。

这是 js代码

$('#actionsModal').on('show.bs.modal', function(e) {

    var action = $(e.relatedTarget).data('id');
    var total = $('input[id^="checkboxRol"]:checked').length;

    var message = "", object = "", confirmation = "";
    if(total == 0){
        $('.alert-info').show();


        // -----------------------------------------------------
        // this is the line giving the error!!!
        $('#actionsModal').modal("toggle");
        // -----------------------------------------------------


    }
    else if(total > 1){
        message = "Va a " + action + " los " + total + " objetos seleccionados:";
        confirmation = "¿Desea realizar esta operación?";
    }
    else{
        message = "Va a " + action + " el objeto:";
        object = "-obtener nombre-<br><br>";
        confirmation = "¿Desea realizar esta operación?";
    }

    $(e.currentTarget).find('span[id="message"]').html(message);
    $(e.currentTarget).find('span[id="object"]').html(object);
    $(e.currentTarget).find('span[id="confirmation"]').html(confirmation);
});

js错误是:未捕获RangeError:超出最大调用堆栈大小

有什么想法吗?也许我可以使用其他类型的引导实体,只使用模态来处理简单按钮或链接点击。

提前致谢!

2 个答案:

答案 0 :(得分:1)

如果你想关闭模态使用

$('#actionsModal').modal("hide");

而不是切换。我不确定它是否对你的情况有帮助,但它可以防止对show.bs.modal事件的不必要的无限递归(这是你的问题)

答案 1 :(得分:1)

解决!

最后,只需要用'shown.bs.modal'事件替换'show.bs.modal'事件

现在行:

$('#actionsModal').modal("toggle");

不会创建无限通话。

谢谢@JesúsQuintana