Domanda

Sto usando setInterval per verificare se un p (paragrafo html) ha un certo valore di testo. se ce l'ha voglio deselezionare intervallo un flusso di codice continuo. lo sto usando in un plugin jQuery quindi se il paragrafo ha un valore di testo tat desidero cancellare l'intervallo e quindi continuare con una funzione di callback. quindi ho provato qualcosa del genere:

var checkTextValue = setInterval(function(){
                          var textVal = $('p').text();
                          if(textVal == 'expectedValue'){
                              clearInterval(checkTextValue);
                              callback();
                          } 
                     },10);

e la funzione di callback è un semplice avviso. Il mio problema è che l'avviso viene chiamato all'infinito. Come posso scrivere il mio codice per farlo bene? Grazie.

È stato utile?

Soluzione

Usa setTimeout invece di setInterval.

Qualcosa del tipo:

var checkTextValue = setTimeout(function() {
    var textVal = $('p').text();
    if (textVal == 'expectedValue'){
        callback();
    } else {
        setTimeout(arguments.callee, 10);
    }
},10);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top