Делайте что-нибудь каждые 5 секунд и код, чтобы остановить это. (JQuery) - PullRequest
21 голосов
/ 09 октября 2009

Как мне повторить функцию doSomething() каждые 5 секунд.

Мне также нужен код, который перестанет это делать.

И код для оперативной настройки частоты.

Ответы [ 4 ]

34 голосов
/ 09 октября 2009

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" />
7 голосов
/ 09 октября 2009

Использование

setInterval

Вызывает функцию несколько раз, с фиксированная задержка между каждым вызовом эта функция.

для повторного действия и

clearInterval

Отменяет повторное действие, которое было установлено с использованием setInterval ().

чтобы остановить это

0 голосов
/ 09 октября 2009
<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>
0 голосов
/ 09 октября 2009

Вы можете использовать setTimeout () для этого.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...