Сделайте что-нибудь каждые 5 секунд и код, чтобы остановить его. (JQuery)
Как я могу повторить функцию doSomething() каждые 5 секунд.
Мне также нужен код, который заставит его перестать это делать.
И код на лету регулирует частоту.
Ответ 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" />
<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>