切换模式后出现 javascript 错误
2015-08-07
241
我刚接触 bootstrap,遇到了一个 javascript 错误,我不知道该如何处理。
我有一个数据表,第一列有复选框。选中一些复选框后,您可以单击两个按钮,打开一个模态框,其中包含不同的消息,用于接受或取消。但如果没有选中复选框,我会显示一个信息警报(也是 bootstrap),我需要“关闭”该模态框。
这是 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:超出最大调用堆栈大小
有什么想法吗?也许我可以使用另一种类型的 bootstrap 实体,并仅使用模态框进行简单的按钮或链接点击。
提前致谢!
2个回答
如果您只想关闭模式,请使用
$('#actionsModal').modal("hide");
而不是切换。我不确定它是否对您的情况有帮助,但它可以防止 show.bs.modal 事件上不必要的无限递归(这是您的问题)
farincz
2015-08-07
解决了!
最后,只需要将“show.bs.modal”事件替换为 “shown.bs.modal” 事件
现在,该行:
$('#actionsModal').modal("toggle");
不会创建无限调用。
感谢@JesúsQuintana
trumpetero
2015-08-11