Appelez la fonction js à l'aide du minuteur JQuery

137

Existe-t-il de toute façon pour implémenter une minuterie pour JQuery, par exemple. toutes les 10 secondes, il doit appeler une fonction js.

J'ai essayé ce qui suit

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

mais cela ne s'exécute qu'une fois, puis plus jamais.

Elitmiar
la source

Réponses:

216

Vous pouvez utiliser ceci:

window.setInterval(yourfunction, 10000);

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

window.setInterval

Appelle une fonction à plusieurs reprises, avec un délai fixe entre chaque appel à cette fonction.

rahul
la source
45

Vous voudrez peut-être consulter jQuery Timer pour gérer un ou plusieurs minuteries.

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

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

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

Ensuite, vous pouvez le contrôler avec:

timer.play();
timer.pause();
timer.toggle();
timer.once();
etc...
Jchavannes
la source
belle utilité. Permet de contrôler le cycle de vie.
Jigar Shah
très utile quand une minuterie a besoin de contrôler une autre minuterie
Onimusha
1
je reçois une erreur :( "TypeError: $ .timer is not a function"
sjd
2
c'est parce que vous devez obtenir le plugin à partir du lien.
Giszmo
25

setInterval est la fonction souhaitée. Cela se répète toutes les x millisecondes.

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

jQuery 1.4 inclut également une méthode .delay (duration, [queueName]) si vous n'en avez besoin que pour se déclencher une fois et que vous avez déjà commencé à utiliser cette version.

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

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

Oups ... mon erreur, vous cherchiez un événement pour continuer à déclencher. Je vais laisser ceci ici, quelqu'un peut le trouver utile.

Craig
la source
2

Vous pouvez utiliser la méthode setInterval () , vous pouvez également appeler votre setTimeout () à partir de votre fonction personnalisée par exemple

function everyTenSec(){
  console.log("done");
  setTimeout(everyTenSec,10000);
}
everyTenSec();
Aren Hovsepyan
la source
-2
function run() {
    window.setTimeout(
         "run()",
         1000
    );
}
harpax
la source
6
-1, car fournir une chaîne à eval au lieu de simplement fournir la fonction est à l'origine de trop de bogues.
vog