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.

Réponses:


216

Vous pouvez utiliser ceci:

window.setInterval(yourfunction, 10000);

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

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

window.setInterval

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


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...

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);

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.



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();

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

6
-1, car fournir une chaîne à eval au lieu de simplement fournir la fonction est à l'origine de trop de bogues.
vog
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.