簡體   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