JQuery, comment appeler une fonction toutes les 5 secondes.
Je cherche un moyen d'automatiser le changement d'images dans un diaporama.
Je préférerais ne pas installer d'autres plugins tiers si possible.
Vous n'avez pas besoin de jquery pour cela, en javascript simple, ce qui suit fonctionnera!
window.setInterval(function(){
/// call your function here
}, 5000);
Pour arrêter la boucle, vous pouvez utiliser
clearInterval()
vous pouvez enregistrer un intervalle sur la page en utilisant setInterval, c'est-à-dire:
setInterval(function(){
//code goes here that will be run every 5 seconds.
}, 5000);
Juste un petit pourboire pour la première réponse. Si votre fonction est déjà définie, référencez-la mais n'appelez pas !!! Donc, ne mettez pas de parenthèses après le nom de la fonction. Juste comme:
my_function(){};
setInterval(my_function,10000);
Les fonctions mentionnées ci-dessus s’exécutent peu importe si elles se sont terminées lors de la précédente invocation ou non, celle-ci est exécutée toutes les x secondes une fois l’exécution terminée.
// IIFE
(function runForever(){
// Do something here
setTimeout(runForever, 5000)
})()
// Regular function with arguments
function someFunction(file, directory){
// Do something here
setTimeout(someFunction, 5000, file, directory)
// YES, setTimeout passes any extra args to
// function being called
}
Un bon exemple où souscrire un setInterval () et utiliser un clearInterval () pour arrêter la boucle forever:
function myTimer() {
console.log(' each 1 second...');
}
var myVar = setInterval(myTimer, 1000);
appelez cette ligne pour arrêter la boucle:
clearInterval(myVar);
setInterval
et setTimeout
peuvent fonctionner pour vous (comme @Doug Neiner et @John Boker ont écrit les deux pointent maintenant sur setInterval
).
Voir ici pour plus d'explications à propos des suites pour voir quelles suites vous aimez le plus et comment les arrêter.
vous pouvez utiliser window.setInterval et le temps doit être défini en millisecondes, dans le cas ci-dessous, la fonction appellera après chaque seconde (1000 millisecondes)
<script>
var time = 3670;
window.setInterval(function(){
// Time calculations for days, hours, minutes and seconds
var h = Math.floor(time / 3600);
var m = Math.floor(time % 3600 / 60);
var s = Math.floor(time % 3600 % 60);
// Display the result in the element with id="demo"
document.getElementById("demo").innerHTML = h + "h "
+ m + "m " + s + "s ";
// If the count down is finished, write some text
if (time < 0) {
clearInterval(x);
document.getElementById("demo").innerHTML = "EXPIRED";
}
time--;
}, 1000);
</script>