不能使用jquery在每个表行之间应用延迟

时间:2013-01-28 11:52:51

标签: jquery

我想在每行附加之间延迟3秒

只有附加的第一次迭代才有效,数组的其余部分不会被打印

$(document).ready(function(){
var n=[];
for(var i=1;i<80;i++)
{
n[i]=i;
$("#content table").append("<tr><td>"+n+"<td></tr>").setTimeout(3000);
}
});

2 个答案:

答案 0 :(得分:0)

以下是一个工作示例:http://jsbin.com/etaqez/4/edit

我使用了一个带计数器的setInterval。 如果它达到数组的长度,则清除间隔。

$(document).ready(function(){
  var n=[];
  for(var i=1;i<80;i++) {
    n[i]=i;
  }

  var counter = 1;

  var addRow = function(elem){
    if (counter < n.length) {
      $("#content table").append("<tr><td>"+n[counter]+"<td></tr>");

      counter += 1;      
    } else {
      clearInterval(timer);
    }
  };

  var timer = setInterval(addRow, 3000);  

});

答案 1 :(得分:0)

尝试:

 $(document).ready(function () {
 var n = [];
  for (var i = 1; i < 80; i++) {
      n[i] = i;
      $("#content table").delay(3000)
          .queue(function (nxt) {
          $(this).append("<tr><td>" + n + "<td></tr>");
          nxt(); 
      });
   }
 });

Sample