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

unbirth  2017-12-20 08:52  ·  106 浏览

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"

求解是什么原因导致的。。。

1个回答
shake 2017-12-20 09:46

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

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

(function a() {
    a();
})();