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.

Foi útil?

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
scroll top