【发布时间】:2017-04-01 05:17:19
【问题描述】:
为什么会出现这个错误:
未捕获的 RangeError:超出最大调用堆栈大小
这是我的代码:
$(document).on('keypress focusout', '.checklist-item-input', function (e) {
if (e.which == 13 || e.type == 'focusout') {
$('.checklist-item').removeClass('edit');
$(this).siblings('.checklist-item-detail').text($(this).val());
$(this).blur();
$('.checklist-item-detail').each(function () {
if (!$(this).text().length) {
$(this).closest('.checklist-item').parent().remove();
}
});
}
});
【问题讨论】:
-
'因为在
focusout上,你调用.blur(),它引发focusout,它调用.blur(),它引发focusout,它调用.blur(),它引发focusout,它调用.blur()引发focusout调用.blur()引发focusout调用.blur()....等 -
$(this).blur();执行focusout事件,无限次调用
标签: javascript jquery error-handling