Saya mendapatkan pesan kesalahan "Tidak Tertangkap RangeError: Ukuran tumpukan panggilan maksimum terlampaui" di chrome. di sini adalah fungsi jQuery saya
$('td').click(function () {
if ($(this).context.id != null && $(this).context.id != '') {
foo($('#docId').val(), $(this).attr('id'));
}
return false;
});
Perhatikan bahwa ada puluhan ribu sel di halaman. Namun, saya biasanya mengasosiasikan stack overflows dengan rekursi dan dalam kasus ini sejauh yang saya lihat tidak ada.
Apakah membuat lambda seperti ini secara otomatis menghasilkan banyak barang di tumpukan? apakah ada jalan lain untuk itu?
Saat ini satu-satunya solusi yang saya miliki adalah menghasilkan peristiwa onclick secara eksplisit di setiap sel saat merender HTML, yang membuat HTML jauh lebih besar.
foo($('#docId').val(), $(this).attr('id'));
baris? - Tip kinerja ekstra: simpan hasil penyeleksi dalam cache - misalnya simpan hasil $(this)
dalam variabel dan gunakan di seluruh handler sesuai kebutuhan.