javascript / jQuery setInterval / clearInterval
-
06-07-2019 - |
Вопрос
Я использую 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);
Не связан с StackOverflow