2011-08-02 19 views
5

¿Puede alguien explicarme de forma rápida y sencilla cómo realizar una acción cada dos segundos con var timeOut = setTimeout(FunctionName, 5000);?Jquery: realice una acción cada dos segundos

Quiero ejecutar una función cada 5 segundos.

+0

Creo que quiere setInterval y no setTimeout. – Matt

Respuesta

21

Como usted pidió un método que utiliza setTimeout:

function doStuff() { 
    console.log("hello!"); 
    setTimeout(doStuff, 5000); 
} 
setTimeout(doStuff, 5000); 

Pero probablemente sería mejor utilizar setInterval:

function doStuff() { 
    console.log("hello!"); 
} 
setInterval(doStuff, 5000); 
+0

+1. Lo mejor es usar 'setTimeout' dentro de la función. – Shef

+0

¿Qué console.log hace exactamente? – Iladarsda

+0

Imprime todo lo que le diga que imprima en la consola (presione F12 en los navegadores más nuevos para abrir la consola). –

1

Uso setInterval:

var timeOut = setInterval(nextNotice, 5000); 
1
var myFunction = function() { 
    //Do stuff 
    AnotherFunction(); 
}; 

var timeOut = setInterval(myFunction, 2000); 
2

Simplemente ponga setTimeout al final dentro de su función, con una llamada a sí mismo, como una repetición de cola retrasada.

1

En el siguiente ejemplo, cuando se hace clic en un botón, el campo de entrada comenzará a contar (para siempre), a partir de 0.

<html> 
    <head> 
    <script type="text/javascript"> 
     var c = 0; 
     var t; 
     var timer_is_on = false; 

     function timedCount() { 
     document.getElementById('txt').value = c; 
     c = c + 1; 
     t = setTimeout(timedCount, 1000); 
     } 

     function doTimer() { 
     if (!timer_is_on) { 
      timer_is_on = true; 
      timedCount(); 
     } 
     } 
    </script> 
    </head> 
    <body> 
    <form> 
     <input type="button" value="Start count!" onclick="doTimer()"> 
     <input type="text" id="txt" /> 
    </form> 
    </body> 
</html> 
+0

[W3Schools no es un gran recurso] (http://w3fools.com/). Si está enlazando un artículo en otro sitio, por favor también resúmalo aquí. – lonesomeday

+0

Pero el recurso tiene un ejemplo perfecto: – vaidas

+0

No, tiene un ejemplo funcional. Existen numerosos problemas con ese bit de código que lo convierten en un ejemplo pobre (uso de un número como booleano, uso de una cadena con 'setTimeout', sin invocación real del código, nombres de variable sin sentido). – lonesomeday

1

se puede hacer algo como:

$(document).ready(function() 
     { 
setTimeout(nextNotice, 5000); 
} 
function nextNotice() 
{ 
// do stuff 
setTimeout(nextNotice, 5000); 
} 
+0

¿Por qué setTimeout se usa dos veces? – Iladarsda

+0

cierto, puede llamar a nextNotice() en la función de documento listo si desea que los mensajes/acciones aparezcan/procedan directamente, en lugar de esperar la hora establecida. –

Cuestiones relacionadas