2010-02-19 5 views
131

¿Hay alguna manera de implementar un temporizador para JQuery, por ej. cada 10 segundos necesita llamar a una función js.Llamar js-function usando el temporizador de JQuery

He intentado lo siguiente

window.setTimeout(function() { 
alert('test'); 
}, 10000); 

pero esto sólo se ejecuta una vez y luego nunca más.

Respuesta

206

Puede utilizar esta:

window.setInterval(yourfunction, 10000); 

function yourfunction() { alert('test'); } 
25

setInterval es la función que desea. Eso se repite cada x milisegundos.

window.setInterval(function() { 
    alert('test'); 
}, 10000); 
46
window.setInterval(function() { 
alert('test'); 
}, 10000); 

window.setInterval

Calls a function repeatedly, with a fixed time delay between each call to that function.

-2
function run() { 
    window.setTimeout(
     "run()", 
     1000 
    ); 
} 
+6

-1, porque proporcionar una cadena para evaluar en lugar de simplemente proporcionar la función es la raíz de demasiados errores. – vog

11

jQuery 1.4 también incluye una (duración, [queuename]) Método .delay si solamente se necesita para desencadenar una vez y ya han empezado a utilizar esa versión.

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

http://api.jquery.com/delay/

Lamentablemente .... mi error buscaba un evento desencadenante para continuar. Dejaré esto aquí, alguien puede encontrarlo útil.

45

posible que desee comprobar hacia fuera jQuery temporizador para gestionar uno o varios temporizadores.

http://code.google.com/p/jquery-timer/

var timer = $.timer(yourfunction, 10000); 

function yourfunction() { alert('test'); } 

A continuación, puede controlarlo con:

timer.play(); 
timer.pause(); 
timer.toggle(); 
timer.once(); 
etc... 
+0

buena utilidad. Permite controlar el ciclo de vida. –

+0

muy útil para cuando un temporizador necesita controlar otro temporizador – Onimusha

+1

obtengo un error :("TypeError: $ .timer no es una función" – sjd

1

Puede utilizar setInterval() método también se puede llamar a su setTimeout() de su función personalizada por ejemplo

function everyTenSec(){ 
    console.log("done"); 
    setTimeout(everyTenSec,10000); 
} 
everyTenSec(); 
Cuestiones relacionadas