Chame a função js usando o temporizador JQuery

137

Existe alguma maneira de implementar um temporizador para JQuery, por exemplo. a cada 10 segundos, ele precisa chamar uma função js.

Eu tentei o seguinte

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

mas isso é executado apenas uma vez e nunca mais.

Elitmiar
fonte

Respostas:

216

Você pode usar isto:

window.setInterval(yourfunction, 10000);

function yourfunction() { alert('test'); }
Kristof Claes
fonte
50
window.setInterval(function() {
 alert('test');
}, 10000);

window.setInterval

Chama uma função repetidamente, com um atraso de tempo fixo entre cada chamada para essa função.

rahul
fonte
45

Pode querer verificar o jQuery Timer para gerenciar um ou vários temporizadores.

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

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

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

Então você pode controlá-lo com:

timer.play();
timer.pause();
timer.toggle();
timer.once();
etc...
jchavannes
fonte
bom utilitário. Permite controlar o ciclo de vida.
Jigar Shah
muito útil para quando um temporizador para controlar precisa outro temporizador
Onimusha
1
estou recebendo um erro :( "TypeError: $ .timer não é uma função"
sjd 12/11/13
2
isso é porque você precisa obter o plug-in a partir do link.
Giszmo 01/04
25

setInterval é a função que você deseja. Isso repete cada x milissegundos.

window.setInterval(function() {
    alert('test');
}, 10000);
Ikke
fonte
11

O jQuery 1.4 também inclui um método .delay (duration, [queueName]) se você precisar acionar apenas uma vez e já tiver iniciado o uso dessa versão.

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

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

Opa ... meu erro, você estava procurando um evento para continuar disparando. Vou deixar isso aqui, alguém pode achar útil.

Craig
fonte
2

Você pode usar o método setInterval () e também pode chamar seu setTimeout () da sua função personalizada, por exemplo

function everyTenSec(){
  console.log("done");
  setTimeout(everyTenSec,10000);
}
everyTenSec();
Aren Hovsepyan
fonte
-2
function run() {
    window.setTimeout(
         "run()",
         1000
    );
}
harpax
fonte
6
-1, porque fornecer uma string para avaliar em vez de simplesmente fornecer a função é a raiz de muitos bugs.
vog