Toca repasar la función de jQuery delay(), su funcionalidad es la de retrasar la ejecución de una función esperando a ejecutarse en una cola.
Una cola es una o varias funciones esperando ser ejecutadas. El orden de las colas que vamos a ver es FIFO –> first in, first out. Es decir, la primera función encolada es la primera en salir.
Quizás os puedan ser de utilidad estos otros post sobre las colas en jQuery:
Se complementa perfectamente con las funciones: animate(), show() y hide(), slideUp() y slideDown(), css() etc…
Veamos la sintaxis extraída de su web oficial:
$(selector).delay(duracion, NombreCola);
Os explico los parámetros:
Vamos a ver en este ejemplo cómo retrasar la ejecución de una función en una cola:
var MiColaDeFunciones = $("#funciones"); var MiColaDeFunciones2 = $("#funciones2"); $("#botondelay").click(function(){ MiColaDeFunciones.delay(5000).fadeOut(1000).delay("fast").fadeIn(1000); }); $("#botonsindelay").click(function(){ MiColaDeFunciones2.fadeOut(1000).fadeIn(1000); });
Antes de explicar el código del ejemplo os explico su funcionamiento:
Os explico el código:
El código HTML de los botones e ids es el siguiente:
<p id="funciones">En este texto se harán los efectos con delay</p> <p id="funciones2">En este texto se harán los efectos sin delay</p> <input type="button" id="botondelay" value="Acción con delay"> <input type="button" id="botonsindelay" value="Acción sin delay">
Para la detección, control o selección de elementos con jQuery os recomiendo leer este post: