我在chrome上收到错误消息“未捕获RangeError:超出了最大调用堆栈大小”。下面是我的jQuery函数
$('td').click(function () {
if ($(this).context.id != null && $(this).context.id != '') {
foo($('#docId').val(), $(this).attr('id'));
}
return false;
});
请注意,页面中有数万个单元格。然而,我通常将堆栈溢出与递归联系在一起,在这种情况下,就我所见,没有一个堆栈溢出。
创建像这样的lambda会自动在堆栈上生成大量的东西吗?有什么办法可以绕过它吗?
目前,我唯一的解决办法是在呈现HTML时显式地在每个单元格上生成onclick事件,这会使HTML变得更大。
发布于 2013-12-29 04:18:41
当你有一个无限循环时,你也会得到这个错误。确保你没有任何无休止的、递归的自我引用。
发布于 2015-06-18 06:33:07
我的更多的是一个错误,发生的是循环点击(我猜),基本上是通过点击登录,父级也被点击了,这最终导致超过了最大调用堆栈大小。
$('.clickhere').click(function(){
$('.login').click();
});
<li class="clickhere">
<a href="#" class="login">login</a>
</li>
发布于 2013-04-13 06:35:55
当我在一个带有许多其他jQUery插件的网站中使用jQuery Fancybox时,这个问题就发生在我身上。当我使用LightBox (site here)而不是Fancybox时,这个问题就解决了。
https://stackoverflow.com/questions/7658775
复制相似问题