javascript / jQuery setInterval / clearInterval - PullRequest
       13

javascript / jQuery setInterval / clearInterval

4 голосов
/ 26 октября 2009

Я использую setInterval, чтобы проверить, имеет ли p (HTML-абзац) определенное текстовое значение. если он есть, я хочу очистить интервал потока кода продолжения. Я использую это в плагине jQuery, поэтому, если у абзаца есть текстовое значение tat, я хочу очистить интервал, а затем продолжить с функцией обратного вызова. поэтому я попробовал что-то вроде этого:

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

и функция обратного вызова это простое предупреждение. Моя проблема в том, что оповещение вызывается бесконечно. Как я могу написать свой код, чтобы сделать это правильно? Благодарю.

1 Ответ

8 голосов
/ 26 октября 2009

Используйте setTimeout вместо setInterval.

Что-то вроде:

var checkTextValue = setTimeout(function() {
    var textVal = $('p').text();
    if (textVal == 'expectedValue'){
        callback();
    } else {
        setTimeout(arguments.callee, 10);
    }
},10);
...