Вопрос

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

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

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

Это было полезно?

Решение

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

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

var checkTextValue = setTimeout(function() {
    var textVal = $('p').text();
    if (textVal == 'expectedValue'){
        callback();
    } else {
        setTimeout(arguments.callee, 10);
    }
},10);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top