【发布时间】:2012-08-10 10:48:14
【问题描述】:
在这里我找到了一个循环(递归函数)延迟的例子,并用于它自己的目的。问题是成功添加 div 后我需要停止循环,但这里是递归函数,因此 break 会引发错误。
我尝试过这样的事情:
(function myLoop(i){
console.log($("input[name='show']").is(':visible'));
if($("input[name='show']").is(':visible'))
return false;
setTimeout(function(){
$.getScript('index.php?ping=true', function(data){
if(ping){
$('#input').append('<input width="320" type="image" height="240" border="0" src="http://'+url+':'+port+'/?up" name="show">');
}
});
if (--i) myLoop(i);
}, 7000)
})(10);
但它仅在添加第二个 div 后才会停止。据我了解,我需要以某种方式在 if 上使用回调?
更新: 自己解决了问题,只添加了 if (--i) myLoop(i);到getscript
【问题讨论】:
-
为什么不使用 setInterval/clearInterval 而不是递归呢?
-
请创建一个演示:jsfiddle.net
标签: javascript jquery loops recursion