我正在尝试在JS(或JQuery)中编写一个简单的循环,该循环每五秒更新一次图像,总共需要15秒(因此三个循环),然后退出。

它应该像这样:

  • 等待五秒钟
  • 执行
  • 等待五秒钟
  • 执行
  • 等待五秒钟
  • 执行
  • 退出

  • 但是setTimeout似乎只能工作一次。

    作为测试,我尝试了:
    function doSetTimeout(i) {
      setTimeout(function() { alert(i); }, 5000);
    }
    
    for (var i = 1; i <= 5; ++i)
      doSetTimeout(i);
    

    不起作用:http://jsfiddle.net/ubruksco/

    我也尝试过:
    for(var i = 1; i <= 5; i++) {
        (function(index) {
            setTimeout(function() { alert(index); }, 5000);
        })(i);
    }
    

    不起作用:http://jsfiddle.net/Ljr9fq88/

    最佳答案

    var time = 1;
    
    var interval = setInterval(function() {
       if (time <= 3) {
          alert(time);
          time++;
       }
       else {
          clearInterval(interval);
       }
    }, 5000);
    

    您可以简单地创建一个间隔并在第三次之后杀死它

    关于javascript - 每五秒钟使用Javascript循环一次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28697839/

    10-11 00:34