jQuery
jQuery
¡INSCRÍBETE A CUALQUIER CURSO CON UN 50% DE DESCUENTO PARA NUEVOS CLIENTES!

¿Qué quiero decir con retrasar eventos con jQuery?. Simple, que cuando el usuario interactúe con cualquier elemento del DOM, nosotros con jQuery podamos hacer que el tiempo de respuesta desde que el usuario ha interactuado hasta que suceda lo que nosotros hayamos programado sea el tiempo que nosotros queramos, y no al instante.

Ésto puede ser muy útil por ejemplo cuando creemos un autocompletado, en vez de hacer una petición cada vez que el usuario suelta una tecla(keyup), podemos esperar 1 o 2 segundos para hacer la petición, seguro que pasado este tiempo ya ha escrito lo que deseaba buscar.

Para poder hacer ésto con jQuery tenemos varias formas, nosotros simplemente extenderemos la librería para darle nueva funcionalidad, creo que es la forma más limpia de hacer esto.

Lo primero que debemos hacer es crear la nueva funcionalidad, el siguiente código puede servir.

Como podemos ver, hemos creado una nueva función a la que hemos llamado delayPasteKeyUp, la cuál recibe dos parámetros, una función y los milisegundos que queremos retrasar la petición.

El método clearTimeout() limpia el temporizador programado con el método setTimeout(). El método setTimeout() devuelve un identificador autoincremental que se utiliza como parámetro para el método clearTimeout().

Ahora podríamos utilizar la siguiente función de la siguiente forma.

El siguiente código contiene el ejemplo completo funcionando, espero que haya quedado lo más claro posible y sea útil.

De esta forma evitamos que mientras el usuario interactúa con el campo de texto haciendo uso de los eventos keyup y paste no hagamos nada si no han pasado 1,5 segundos, saludos.