w3schools remover removeattr remove quitar atributos javascript jquery delay wait seconds

javascript - remover - jQuery: Espera/Demora 1 segundo sin ejecutar el código



removeattr display jquery (7)

No puedo hacer que el método .delay funcione en jQuery:

$.delay(3000); // not working $(queue).delay(3000); // not working

Estoy usando un ciclo while para esperar hasta que un valor cambiante descontrolado sea mayor o igual que otro y no puedo encontrar ninguna forma de interrumpir la ejecución por X segundos.


$ .delay se usa para retrasar las animaciones en una cola, no detener la ejecución.

En lugar de usar un ciclo while, debe llamar recurrentemente a un método que realiza el control cada segundo usando setTimeout :

var check = function(){ if(condition){ // run when condition is met } else { setTimeout(check, 1000); // check again in a second } } check();


JavaScript setTimeout es una muy buena solución:

function funcx() { // your code here // break out here if needed setTimeout(funcx, 3000); } funcx();

La función de delay en jQuery se usa principalmente para retrasar animaciones en una cola de animación jQuery.


Javascript es un lenguaje de programación asincrónico, por lo que no puede detener la ejecución por un tiempo; la única forma en que puede [pseudo] detener una ejecución es usando setTimeout () que no es un retraso sino una "devolución de llamada de función demorada".


La función de delay de jQuery está diseñada para usarse con efectos y colas de efectos, vea los documentos de delay y el ejemplo en el mismo:

$(''#foo'').slideUp(300).delay(800).fadeIn(400);

Si desea observar una variable para cambios, podría hacer algo como

(function() { var observerInterval = setInterval(function() { if (/* check for changes here */) { clearInterval(observerInterval); // do something here } }, 1000); })();


Solo javascript Funcionará sin jQuery

<!DOCTYPE html> <html> <head> <script> function sleep(miliseconds) { var currentTime = new Date().getTime(); while (currentTime + miliseconds >= new Date().getTime()) { } } function hello() { sleep(5000); alert(''Hello''); } function hi() { sleep(10000); alert(''Hi''); } </script> </head> <body> <a href="#" onclick="hello();">Say me hello after 5 seconds </a> <br> <a href="#" onclick="hi();">Say me hi after 10 seconds </a> </body> </html>


También puedes retrasar algunas operaciones de esta manera:

setTimeout(function (){ // Something you want delayed. }, 5000); // How long do you want the delay to be (in milliseconds)?


delay() no detiene el flujo de código y luego lo vuelve a ejecutar. No hay una forma práctica de hacerlo en JavaScript. Todo tiene que hacerse con funciones que toman devoluciones de llamadas como setTimeout que otros han mencionado.

El propósito de la delay() de jQuery delay() es hacer que una cola de animación espere antes de ejecutarse. Entonces, por ejemplo, $(element).delay(3000).fadeIn(250); hará que el elemento se desvanezca después de 3 segundos.