繁体   English   中英

jQuery Uncaught RangeError:超出最大调用堆栈大小-Jquery

[英]jQuery Uncaught RangeError: Maximum call stack size exceeded -Jquery

我遇到错误

未捕获的RangeError:超出最大调用堆栈大小

我的jQuery函数:

$('td').click(function () {
        if ($(this).context.id != null && $(this).context.id != '') {
            foo($('#docId').val(), $(this).attr('id'));
        }
        return false;
    });

页面中有成千上万个单元格。 但是,我通常将堆栈溢出与递归相关联,在这种情况下,据我所知没有。

创建像这样的lambda是否会自动在堆栈上产生大量负载? 有什么办法吗?

如果您的页面上确实有(需要?)数千个td ,我想它将减轻为单个祖先元素添加一个单击侦听器而不是为每个td添加一个单击侦听器的计算量。 例如:

$('table').on('click', 'td', function () {
    var $tabledata = $(ev.target).closest('td');
    if ($tabledata.context.id != null && $tabledata.context.id != '') {
        foo($('#docId').val(), $tabledata.attr('id'));
    }
    return false;
});

我认为这将减轻添加处理程序时的负担,但可能不会减轻它们触发时的负担。 如果您还有其他导致错误的问题(例如在foo方法中),我们将需要查看代码来清除这些错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM