每隔n秒执行一次function

我制作了这个片段,在第10秒后点击链接:

function timeout() { window.setTimeout(function() { $('img.left').click(); }, 1000); setTimeout("timeout()", 1000); } timeout(); 

我的问题是,我如何每隔10秒执行一次这个function,而不是只执行一次?

这是最好的方法吗,或者你喜欢某种漂亮的jQuery方法?

使用setInterval而不是setTimeout

http://javascript.about.com/library/blstvsi.htm

setInterval(yourFunction, 1000 * 10);

(以毫秒为单位的时间:1000秒为1秒,1000 * 10为10秒)

哪个比“setTimeout”好; 更具可读性等

我使用此方法进行轮询,重复更新和动画:

 var timerId = setInterval(function() { if (timeToStopConditionMet) { clearInterval(timerId); return; } // your recurring code }, 10000); // 10000 makes this code execute every 10 seconds 

是的, setInterval(timeout, 1000) 几乎完全相同 。 它有点不同,因为下一个间隔在1000ms后立即开始计数,而不是在运行的脚本完成(甚至开始)之后。 出于大多数目的,我正是出于这个原因提倡反对它。 你的实施更好,IMO。

此外,您不需要在字符串中传递timeout函数,您可以直接传递引用,即setTimeout(timeout, 1000)而不是setTimeout("timeout()", 1000)

 window.onload=function(){ GetCount(dateFuture1, 'countbox1'); }