收到“范围错误: 超出最大调用堆栈大小”错误
Getting the "RangeError: Maximum call stack size exceeded" error
我在Chrome中收到这个JavaScript错误:
范围错误:超出最大调用堆栈大小 [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
总是正确的。
相关文章:
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- Javascript播放声音会导致“NPObject上的错误调用方法”
- 未捕获的类型错误:调用函数时无法读取未定义的属性“then”
- 电话差距构建地理位置 NPObject 上的错误调用方法
- 间歇性 HTTP 403 禁止访问错误调用相同的 Ajax 代码
- 致命错误:调用未定义的函数 FusionCharts()
- 致命错误:未捕获错误:调用未定义的函数loginRelocate() Javascript
- Codeigntier/AJAX - 致命错误:调用未定义的函数 form_input() in
- 范围错误:调用堆栈超出异步 .eachSeries 上的范围错误
- 未捕获的类型错误:调用 push() 时的类型错误
- 错误:调用 waitForCondition 时错误响应状态:13
- JavaScript 错误:“调用的对象已与其客户端断开连接”在 IE8 中的 window.open 上
- AngularJS函数在路由更改时被错误调用
- Javascript中的作用域错误.调用该对象的不同方法中的方法
- Ajax返回错误调用错误Ajax错误调用
- “function"Javascript中没有定义错误:调用函数的正确方式是什么?
- YouTube iFrame API:没有就绪调用,没有错误调用
- 从 javascript 错误调用的引导进度条
- 小部件,从选项错误调用函数
- JavaScript -当错误调用其他函数时,函数不会抛出错误