我需要添加iframe,彼此之间要等待1秒,而不是一次添加所有iframe。没有运气就试了一下,只是一次全部添加。

var  i = 0;

function appendSomeItems() {
  for (var j=0; j<50; i++, j++) {
    $('body').append('<iframe src="http://www.example.com"></iframe>').delay(1000);
  }
  if (i < 50) window.setTimeout(appendSomeItems, 0);
}

appendSomeItems();


正确的方法是什么?谢谢。

最佳答案

for (var j = 0; j < 50; j++) {
  setTimeout(function() {
     $('body').append('<iframe src="http://www.example.com"></iframe>');
  }, j * 1000);  // each call is scheduled to run after j seconds
}


ps:请勿在建立所需的调用次数后使用非常大的数字或将setInterval与单个函数,计数器和计时器清除配合使用,或者在定时函数的当前调用结束时将setTimeout用于下一个调用。只需在上次通话中跳过该步骤即可。

关于javascript - 睡一秒钟然后追加?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26330600/

10-12 12:31
查看更多