发布于 5年前

js报错"Uncaught RangeError: Maximum call stack size exceeded"

html代码:

<div class="aaa">
    <div class="bbb">我是bbb</div>
    <div class="other">我是other</div>
</div>

js代码(已经引入jquery)

$(".aaa").click(function(){
    $(".bbb").click();
})

操作就是想实现 点击aaa 时触发 点击bbb,但是报错误 "Uncaught RangeError: Maximum call stack size exceeded"

分析: 错误直译过来就是“栈溢出”,出现这个错误的原因是因为你进行了递归运算,但是忘记添加判断条件,导致递归无线循环下去。

aaa 中包含 bbb,当你点击 aaa 时,触发了 点击bbb 操作。但是 点击bbb 也是在 点击aaa,导致一直无限循环下去。类似于如下递归操作:

(function a() {
    a();
})();
js
©2020 edoou.com   京ICP备16001874号-3