javascript / jQuery setInterval / clearInterval
-
06-07-2019 - |
Pergunta
Estou usando setInterval para verificar se um p (parágrafo html) tem um certo valor de texto. se ele tem que eu quero limpar intervalo de um continuar o fluxo de código. eu estou usando isso em um plugin jQuery isso, se o parágrafo tem valor de texto tat i deseja limpar intervalo e, em seguida, continuar com a função de retorno. então eu tentei algo como isto:
var checkTextValue = setInterval(function(){
var textVal = $('p').text();
if(textVal == 'expectedValue'){
clearInterval(checkTextValue);
callback();
}
},10);
e a função de retorno é um alerta simples. Meu problema é que o alerta é chamado indefinidamente. Como posso escrever o meu código para fazer isso certo? obrigado.
Solução
Use setTimeout em vez de setInterval.
Algo como:
var checkTextValue = setTimeout(function() {
var textVal = $('p').text();
if (textVal == 'expectedValue'){
callback();
} else {
setTimeout(arguments.callee, 10);
}
},10);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow