bootstrap modal上弹出dialog 报错Maximum call stack size exceeded

昨天修正alert弹出的正告太难看了,改用dialog对话框,然后就报了一个错:

    jquery-2.0.2.min.js:5 Uncaught RangeError: Maximum call stack size exceeded. 

重复测试,在bootstrapmodal模态框上弹出了jQuery UIdialog,才报这个错的。

客栈溢出!!!
觉得这个题目挺严峻的,怎样调试都找不到报错的缘由,上网搜了一下,材料以下:
浏览器JS报错Uncaught RangeError: Maximum call stack size exceeded
JS 非常: Uncaught RangeError: Maximum call stack size exceeded

归根结柢,缘由是递归挪用了,然则,犹如第二个链接里所说的:

表面上看,是因为递归次数太多致使内存被消耗太多,然则我的顺序中,并没有一处运用递归算法啊

我的js中同样是没有运用递归挪用的状况啊,差点要摒弃了。

题目的泉源在于网页中援用了两个差别的JavaScript库,而这两个库都对JavaScript原始对象的某些要领做了修正,从而致使涌现了轮回援用

细致研讨了下jQuery UI 实例 – 对话框(Dialog),豁然开朗,dialog本质上也是modal
我们这里形成报错的缘由 是 我们运用的bootstrapmodal模态框jQuery UI dialog的肯定按钮的click事宜争执了,也就是说,题目的泉源是援用了两个差别的JavaScript库,他们都对弹出的modal做出了修正,我两个同时嵌套运用的时刻,就形成了递归挪用。

终究,解决办法是将dialog的modal设置为false:

$(function() {
    $( "#dialog-modal" ).dialog({
      height: 140,
      modal: false
    });
  });

jQuery UI 实例 – 对话框(Dialog)中也说了:

模态确认

确认一个行动多是破坏性的也多是有意义的。设置 modal 选项为 true,并经由过程 buttons 选项来指定重要的和次要的用户行动。

哎。。。总之,题目解决了。

    原文作者:北堂棣
    原文地址: https://segmentfault.com/a/1190000007157432
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞