javascript / jQuery setInterval / clearInterval
-
06-07-2019 - |
Question
J'utilise setInterval pour vérifier si un p (paragraphe html) a une certaine valeur textuelle. si c'est le cas, je veux effacer l'intervalle et continuer le flux de code. J'utilise ceci dans un plugin jQuery, donc si le paragraphe a une valeur textuelle, je veux effacer l'intervalle, puis continuer avec une fonction de rappel. donc j'ai essayé quelque chose comme ça:
var checkTextValue = setInterval(function(){
var textVal = $('p').text();
if(textVal == 'expectedValue'){
clearInterval(checkTextValue);
callback();
}
},10);
et la fonction de rappel est une simple alerte. Mon problème est que l'alerte est appelée à l'infini. Comment puis-je écrire mon code pour le faire correctement? Merci.
La solution
Utilisez setTimeout au lieu de setInterval.
Quelque chose comme:
var checkTextValue = setTimeout(function() {
var textVal = $('p').text();
if (textVal == 'expectedValue'){
callback();
} else {
setTimeout(arguments.callee, 10);
}
},10);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow