Viene visualizzato l'errore "Uncaught RangeError: Maximum stack stack size exceeded" su chrome. ecco la mia funzione jQueryChrome/jQuery Uncaught RangeError: Superato lo stack stack delle chiamate superato
$('td').click(function() {
if ($(this).context.id != null && $(this).context.id != '') {
foo($('#docId').val(), $(this).attr('id'));
}
return false;
});
Nota che ci sono decine di migliaia di celle nella pagina. Tuttavia, in genere associo lo stack overflow con la ricorsione e in questo caso, per quanto posso vedere, non c'è nessuno.
La creazione di un lambda come questo genera automaticamente un carico di cose in pila? c'è un modo per aggirarlo?
Al momento l'unica soluzione alternativa è generare gli eventi onclick esplicitamente su ogni cella durante il rendering dell'HTML, il che rende l'HTML molto più grande.
Sei sicuro che la funzione foo non riceva? L'errore si verifica ancora se si rimuove la chiamata di funzione? – sth
Funziona come previsto in altri browser? Questo errore si verifica quando si commenta 'foo ($ ('# docId'). Val(), $ (this) .attr ('id'));' line? - Suggerimento per prestazioni extra: memorizza il risultato dei selettori in cache - ad esempio mantieni il risultato di '$ (this)' in una variabile e poi usalo sull'handler come necessario. – WTK
Ho un problema simile ma ho bisogno di eventi mouseenter. Quando uso il corpo o il tavolo non ho abbastanza eventi. – ericslaw