Подтвердить что ты не робот

Сделайте что-нибудь каждые 5 секунд и код, чтобы остановить его. (JQuery)

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

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

И код на лету регулирует частоту.

4b9b3361

Ответ 1

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" />

Ответ 2

Используйте

setInterval

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

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

clearInterval

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

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

Ответ 5

<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>