Saltar al contenido

Chrome/jQuery Uncaught RangeError: se excedió el tamaño máximo de la pila de llamadas

Nuestros mejores desarrolladores agotaron sus depósitos de café, investigando todo el tiempo por la resolución, hasta que Rubén encontró la solución en Beanstalk así que ahora la compartimos con nosotros.

Solución:

Como "hay decenas de miles de celdas en la página", vincular el evento de clic a cada celda causará un terrible problema de rendimiento. Hay una mejor manera de hacer esto, vincular un evento de clic al cuerpo y luego averiguar si el elemento de la celda fue el objetivo del clic. Como esto:

$('body').click(function(e)
       var Elem = e.target;
       if (Elem.nodeName=='td')
           //.... your business goes here....
           // remember to replace $(this) with $(Elem)
       
)

Este método no solo hará su tarea con la etiqueta "td" nativa, sino también con la "td" añadida más adelante. Creo que te interesará este artículo sobre vinculación y delegado de eventos.


O simplemente puede usar el método ".on()" de jQuery con el mismo efecto:

$('body').on('click', 'td', function()
        ...
);

También puede obtener este error cuando tiene un ciclo infinito. Asegúrate de no tener referencias personales recurrentes e interminables.

El mío fue más un error, lo que sucedió fue hacer clic en bucle (supongo) básicamente al hacer clic en el inicio de sesión, también se hizo clic en el padre, lo que terminó causando que se excediera el tamaño máximo de la pila de llamadas.

$('.clickhere').click(function()
   $('.login').click();
);

  • Si guardas algún enigma o forma de innovar nuestro tutorial te recomendamos ejecutar una acotación y con gusto lo ojearemos.

    ¡Haz clic para puntuar esta entrada!
    (Votos: 0 Promedio: 0)



    Utiliza Nuestro Buscador

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada.