javascript/jQuery setInterval/clearInterval
我使用setInterval检查p(html段落)是否有特定的文本值。如果有,我想清除一个持续代码流。我在jQuery插件中使用了它,所以如果段落有tat文本值,我想清除interval,然后继续使用回调函数。 所以我试过这样的方法:javascript/jQuery setInterval/clearInterval,jquery,plugins,setinterval,Jquery,Plugins,Setinterval,我使用setInterval检查p(html段落)是否有特定的文本值。如果有,我想清除一个持续代码流。我在jQuery插件中使用了它,所以如果段落有tat文本值,我想清除interval,然后继续使用回调函数。 所以我试过这样的方法: var checkTextValue = setInterval(function(){ var textVal = $('p').text(); if(tex
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);
总的来说,我同意这是一个更好的方法。但这并没有真正回答为什么代码不起作用的问题。好吧,这是可行的,但现在的问题是,在firefox中,我仍然可以看到动画和加载条,就像页面正在加载和消息传输数据……这应该是无关的。setTimeout与内部方法调用有关,而Firefox加载指示器与外部HTTP请求有关。这是一个老问题,但…我无法重新编写此()命令,我也看不出这不起作用的任何原因。我想一定还有别的事。查看发生了什么最简单的方法是a)删除回调,b)console.log记录checkTextValue/outside/The函数的值,c)console.log记录checkTextValue/inside/The函数的值。您可能也希望将计时器增加到大于10的值。