Quiero agregar una clase, esperar 2 segundos y agregar otra clase.
.addClass("load").wait(2sec).addClass("done");
¿Hay alguna manera?
setTimeout ejecutará algún código después de un retraso de un período de tiempo (medido en milisegundos). Sin embargo, una nota importante: debido a la naturaleza de javascript, el resto del código continúa ejecutándose después de que se configura el temporizador:
$('#someid').addClass("load");
setTimeout(function(){
$('#someid').addClass("done");
}, 2000);
// Any code here will execute immediately after the 'load' class is added to the element.
Eso sería
.delay()
.http://api.jquery.com/delay/
Sin embargo, si estás haciendo cosas AJAX, no deberías escribir automáticamente "hecho", sino que deberías esperar una respuesta y ver si realmente está hecho.
fuente
.removeClass('load')
contrario, desea agregar ambas clases, cargar y listo, lo que probablemente no sea deseado. Si de hecho está esperando a que se complete una acción asincrónica, su mejor opción es hacer .addClass CUANDO se complete y tenga éxito, si no .addClass ('error') tal vez sea una ideadelay () no hará el trabajo. El problema con delay () es que es parte del sistema de animación y solo se aplica a las colas de animación.
¿Qué pasa si quieres esperar antes de ejecutar algo fuera de la animación?
Utilizar este:
¿Qué sucede ?: En este escenario, espera 600 milisegundos antes de ejecutar el código especificado entre las llaves.
¡Esto me ayudó mucho una vez que lo descubrí y espero que también te ayude a ti!
AVISO IMPORTANTE: 'window.setTimeout' ocurre de forma asincrónica. ¡Tenga esto en cuenta al escribir su código!
fuente
Tenga en cuenta que esta es una pregunta antigua, pero escribí un complemento para abordar este problema que alguien podría encontrar útil.
https://github.com/madbook/jquery.wait
te permite hacer esto:
fuente
Hay una función, pero es adicional: http://docs.jquery.com/Cookbook/wait
Este pequeño fragmento te permite esperar:
fuente
Puede utilizar la
.delay()
función.Esto es lo que buscas:
fuente
El complemento xml4jQuery proporciona el método sleep (ms, callback). La cadena restante se ejecutará después del período de suspensión.
fuente
Usando la función setTimeout, por ejemplo Visite aquí por ejemplo
fuente