Я получаю сообщение об ошибке «Uncaught RangeError: Превышен максимальный размер стека вызовов» на Chrome. вот моя функция jQuery
$('td').click(function () {
if ($(this).context.id != null && $(this).context.id != '') {
foo($('#docId').val(), $(this).attr('id'));
}
return false;
});
Обратите внимание, что на странице есть десятки тысяч ячеек. Однако я обычно связываю переполнение стека с рекурсией, и в этом случае, насколько я понимаю, ее нет.
Создает ли автоматическое создание лямбда-выражения в стеке много чего? есть ли способ обойти это?
На данный момент единственный обходной путь, который у меня есть, - это явно генерировать события onclick для каждой ячейки при рендеринге HTML, что делает HTML намного больше.
foo($('#docId').val(), $(this).attr('id'));
строки? - Дополнительный совет по производительности: кэшируйте результат селекторов - например, сохраните результат $(this)
в переменной, а затем используйте его в своем обработчике по мере необходимости.