在这里,我找到了循环(递归函数)延迟的示例并用于其自身目的。问题是成功添加 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