Tôi gặp lỗi "Uncaught RangeError: Đã vượt quá kích thước ngăn xếp cuộc gọi tối đa" trên chrome. đây là hàm jQuery của tôi
$('td').click(function () {
if ($(this).context.id != null && $(this).context.id != '') {
foo($('#docId').val(), $(this).attr('id'));
}
return false;
});
Lưu ý rằng có hàng chục nghìn ô trong trang. Tuy nhiên, tôi thường liên kết tràn ngăn xếp với đệ quy và trong trường hợp này theo như tôi thấy thì không có.
Việc tạo một lambda như thế này có tự động tạo ra một lượng nội dung trên ngăn xếp không? có cách nào làm tròn nó không?
Hiện tại, cách giải quyết duy nhất mà tôi có là tạo các sự kiện onclick một cách rõ ràng trên mỗi ô khi hiển thị HTML, điều này làm cho HTML lớn hơn nhiều.
foo($('#docId').val(), $(this).attr('id'));
dòng không? - Mẹo hiệu suất bổ sung: lưu trữ kết quả của các bộ chọn - ví dụ: giữ kết quả của $(this)
một biến và sử dụng nó trên trình xử lý của bạn khi cần.