Ich erhalte die Fehlermeldung "Nicht erfasster RangeError: Maximale Aufrufstapelgröße überschritten" auf Chrome. Hier ist meine jQuery-Funktion
$('td').click(function () {
if ($(this).context.id != null && $(this).context.id != '') {
foo($('#docId').val(), $(this).attr('id'));
}
return false;
});
Beachten Sie, dass die Seite Zehntausende von Zellen enthält. Im Allgemeinen verbinde ich Stapelüberläufe jedoch mit Rekursion, und in diesem Fall gibt es, soweit ich sehen kann, keine.
Erzeugt das Erstellen eines solchen Lambda automatisch eine Menge Material auf dem Stapel? Gibt es einen Weg daran vorbei?
Im Moment besteht die einzige Problemumgehung darin, die Onclick-Ereignisse beim Rendern des HTML-Codes explizit für jede Zelle zu generieren, wodurch der HTML-Code viel größer wird.
foo($('#docId').val(), $(this).attr('id'));
Zeile kommentieren ? - Zusätzlicher Leistungstipp: Zwischenspeichern Sie das Ergebnis von Selektoren. Behalten Sie beispielsweise das Ergebnis von $(this)
in einer Variablen bei und verwenden Sie es dann nach Bedarf für Ihren Handler.