0

Possible Duplicate:
Sleep in Javascript

i am writing div dynamically using javascript.

i need a delay time for writing one div to another div.

am using for loop to write a div dynamically.

sleep function not working..

my code like,

for(i=0;i<10;i++){
   sleep(100);
   $("#"+i).html("hi"+i);
}

function sleep(milliseconds) {
  var start = new Date().getTime();
  for (var i = 0; i < 1e7; i++) {
    if ((new Date().getTime() - start) > milliseconds){
      break;
    }
  }
}
Community
  • 1
  • 1
Naveen K
  • 859
  • 4
  • 14
  • 29

5 Answers5

3

You could use setTimeout().

Do a google search and you'll see lots of example usages.

diggersworld
  • 12,770
  • 24
  • 84
  • 119
2

You need to use the getTimeout function, which takes a callback and a number of milliseconds to wait before calling it.

for(i=0;i<10;i++){
    setTimeout((function(i) {
        return function() {
            $("#"+i).html("hi"+i);
        };
    })(i), 100) 
}
samfrances
  • 3,405
  • 3
  • 25
  • 40
0

Use setInterval(function, miliseconds)

Muhammad Talha Akbar
  • 9,952
  • 6
  • 38
  • 62
Nikola Ninkovic
  • 1,252
  • 1
  • 12
  • 27
0

As previously suggested, use setTimeout(). You have details here.

GeorgeVremescu
  • 1,253
  • 7
  • 12
0

Another way to use setTimeout, using it in a inner function:

function writeDivs() {
  var i = 0;
  var divsToCreate = 100;
  var timeToSleep = 100;
  var createOneDiv = function () {
    if (i < divsToCreate) {
      $("#"+i).html("hi"+i);
      i++;
      setTimeout(createOneDiv, timeToSleep);
    }
  }
  setTimeout(createOneDiv, timeToSleep);
}
Pedro R.
  • 142
  • 1
  • 11