JQuery - perform actions every couple of seconds

Can someone quickly and simply explain to me how to perform an action every couple of seconds using var timeOut = setTimeout(FunctionName, 5000);?

I want to run a function every 5 seconds.

+5
source share
7 answers

As you asked for the method using setTimeout:

function doStuff() {
   console.log("hello!");
   setTimeout(doStuff, 5000);
}
setTimeout(doStuff, 5000);

But it would be better to use setInterval:

function doStuff() {
   console.log("hello!");
}
setInterval(doStuff, 5000);
+21
source

Just put it setTimeoutat the end inside your function, with a call to yourself - like a delayed tail recursion.

+2
source

http://jsfiddle.net/9WkRw/, . domready jquery.

+2

setInterval:

var timeOut = setInterval(nextNotice, 5000);
+1
var myFunction = function() { 
     //Do stuff
     AnotherFunction();
};

var timeOut = setInterval(myFunction, 2000);
+1

In the example below, when the button is pressed, the input field will begin to count (forever), starting at 0.

<html>
  <head>
    <script type="text/javascript">
      var c = 0;
      var t;
      var timer_is_on = false;

      function timedCount() {
        document.getElementById('txt').value = c;
        c = c + 1;
        t = setTimeout(timedCount, 1000);
      }

      function doTimer() {
        if (!timer_is_on) {
          timer_is_on = true;
          timedCount();
        }
      }
    </script>
  </head>
  <body>
    <form>
      <input type="button" value="Start count!" onclick="doTimer()">
      <input type="text" id="txt" />
    </form>
  </body>
</html>
+1
source

you can do something like:

$(document).ready(function () 
        {
setTimeout(nextNotice, 5000);
}
function nextNotice()
{
// do stuff 
setTimeout(nextNotice, 5000);
}
+1
source

All Articles