簡體   English   中英

獲取“RangeError:超出最大調用堆棧大小”錯誤

[英]Getting the “RangeError: Maximum call stack size exceeded” error

我在Chrome中收到此JavaScript錯誤:

RangeError:超出最大調用堆棧大小[http:// localhost:5545 / assets / js / jquery.min.js:2]

有了這個click事件:

$('.accept-answer-button').click(function() {
    var id = $(this).parent().parent().attr('id').replace('answer_', ''),
        b = this;
    if ($('.accepted').length > 0) $('.accepted').click();
    AP.AcceptAnswer(id, $(b));
});​

AP.AcceptAnswer()的代碼是:

AP.AcceptAnswer = function(a, o) {
    $.getJSON('/assets/ajax/accept-answer', {
        qid: qid,
        answer: a
    }, function(data) {
        if (data.success == true) {
            if (data.type == 'accepted') {
                var title = o.attr('data-unaccept-title').replace('{t}', data.time);
                o.addClass('accepted').attr('title', title);
            }
            else if (data.type == 'unaccepted') {
                var title = o.attr('data-accept-title').replace('{t}', data.time);
                o.removeClass('accepted').attr('title', title);
            }
        }
        else {
            alert(data.error);
        }
    });
}; // end AP.AcceptAnswer()​

我正在做$('.accepted').click(); 只是當用戶想要接受另一個答案時,不接受當前接受的答案(如果有的話)。

你確定類.accepted.accept-answer-button沒有指向同一個元素嗎? 如果它們是您在執行此操作時以遞歸方式觸發單擊事件:

$('.accepted').click(); 

如果$('.accepted').length > 0總是如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM