comment faire un setInterval arrêter après un certain temps ou après un certain nombre d'actions?
J'ai créé une boucle de "changer les mots" avec jQuery
en utilisant le code dans cette réponse:
jQuery: Trouver des mots et de changer toutes les quelques secondes
Comment puis-je l'arrêter après un certain temps? dire après 60seconds ou après qu'il a disparu à travers la boucle?
Vous pouvez voir les mots changeant ici:
http://skolresurser.se/
(function(){
//List your words here:
var words = [
'Lärare',
'Rektor',
'Studievägledare',
'Lärare',
'Skolsyster',
'Lärare',
'Skolpsykolog',
'Administratör'
], i = 0;
setInterval(function(){
$('#dennaText').fadeOut(function(){
$(this).html(words[i=(i+1)%words.length]).fadeIn();
});
//2 seconds
}, 2000);
})();
Vous devez vous connecter pour publier un commentaire.
Pour l'arrêter après l'exécution d'un certain nombre de fois, il suffit d'ajouter un compteur à l'intervalle de temps, puis quand il atteint ce nombre l'effacer.
par exemple
Si vous voulez l'arrêter après un certain temps a passé (par exemple, 1 minute) vous pouvez faire:
//do whatever here
prend plus de 2 secondes?Utilisation
clearInterval
pour effacer l'intervalle. Vous avez besoin de passer l'id d'intervalle, ce qui vous obtenez à partir desetInterval
méthode.E. g.
Pour effacer le au-dessus de l'intervalle d'utilisation
Vous pouvez modifier votre code comme ci-dessous.
Vous devriez envisager d'utiliser un récursif
setTimeout()
au lieu desetInterval()
pour éviter une situation de concurrence.Vous pouvez utiliser
setTimeout
au lieu de cela, ce qui est mieux:JS:
setTimeout
à partir de l'intérieur d'un tel rappel ne sera pas provoquer un débordement de pile.