每隔5秒做一次事情,并停止代码。 (JQuery的)

时间:2009-10-09 07:16:37

标签: javascript jquery

如何每5秒重复一次doSomething()功能。

我还需要能够停止这样做的代码。

动态编码可以调整频率。

4 个答案:

答案 0 :(得分:34)

setTimeout()只会启动一次命令。在这种情况下,setInterval()是你的朋友。

var iFrequency = 5000; // expressed in miliseconds
var myInterval = 0;

// STARTS and Resets the loop if any
function startLoop() {
    if(myInterval > 0) clearInterval(myInterval);  // stop
    myInterval = setInterval( "doSomething()", iFrequency );  // run
}

function doSomething()
{
    // (do something here)
}

来自代码...

<input type="button" onclick="iFrequency+=1000; startLoop(); return false;" 
       value="Add 1 second more to the interval" />

答案 1 :(得分:7)

使用

<强> setInterval

  

使用a重复调用函数   每次通话之间的固定时间延迟   那个功能。

重复行动和

<强> clearInterval

  

取消已设定的重复操作   使用setInterval()。

停止

答案 2 :(得分:0)

您可以使用setTimeout()来实现此目的。

http://www.w3schools.com/htmldom/met_win_settimeout.asp

答案 3 :(得分:0)

<script type="text/javascript">
var t; var timer_is_on=0; var timeout=5000;

function timedCount() {
  doSomeThing();
  t = setTimeout("timedCount()",timeout);
}

function doTimer() {
  if (!timer_is_on) {
    timer_is_on=1;
    timedCount();
  }
}

function stopCount() {
  clearTimeout(t);
  timer_is_on=0;
}
function changeFreq() {
   timeout = 2000;
}
</script>