2

我想每 5 秒用新值替换div带有 id的值。show_num_val为此,我写了以下内容。

<div id="show_num_val"> 0 </div>

在脚本中:

 <script>
 $(document).ready(function() {      
  for(i=0;i<20;i++){
    showThis(i);
  }      
});

function showThis(x) {
  setTimeout(function() {
   $('#show_num_val').html(x);
  }, 5000);
 }
</script>


但是我得到了最后一个值,即20仅在show_num_valdiv 中。有人可以帮忙吗?

4

3 回答 3

3

如果要重复执行,可以使用setInterval() 。

现场演示

$(document).ready(function() {  
    x = 1;
    inverval = setInterval(function() {
                $('#show_num_val').html(x++);
                if(x == 21)
                     clearInterval(inverval);
               }, 2000);​

});
于 2012-12-19T07:34:42.080 回答
3
var x = 0;
T = setInterval(function() {
  if (x == 20) clearInterval(T);
  $('#show_num_val').html(x); 
  x++;
}, 5000);
于 2012-12-19T07:35:20.640 回答
0

看到它工作http://jsbin.com/ajekeq/2/watch

  <script>
   $(document).ready(function() {      
    for(i=1; i<20; i++){
      showThis(i, 5000 * i));
    }      
  });

  function showThis(x, y) {
    setTimeout(function() {
     $('#show_num_val').html(x);
    }, y);
   }
  </script>

您的代码无法正常工作的原因是因为所有计时器都同时结束。我本来希望使用 setInterval,因为我们同时启动 20 个计时器。另一种模型是在 setTimeout 调用中启动下一个计时器,直到完成。

于 2012-12-19T07:41:17.350 回答