javascript - 如何在一段时间后或多次操作后停止 setInterval?

标签 javascript loops

我用 jQuery 创建了一个“改变单词”的循环 通过使用此答案中的代码: jQuery: Find word and change every few seconds

我如何在一段时间后停止它?是说在 60 秒之后还是在循环结束之后?

(function() {

  // List your words here:
  var words = [
      'Lärare',
      'Rektor',
      'Studievägledare',
      'Lärare',
      'Skolsyster',
      'Lärare',
      'Skolpsykolog',
      'Administratör'
    ],
    i = 0;

  setInterval(function() {
    $('#dennaText').fadeOut(function() {
      $(this).html(words[i = (i + 1) % words.length]).fadeIn();
    });
    // 2 seconds
  }, 2000);

})();

最佳答案

要在运行一定次数后停止它,只需在间隔中添加一个计数器,然后当它达到该数字时将其清除。

例如

var timesRun = 0;
var interval = setInterval(function(){
    timesRun += 1;
    if(timesRun === 60){
        clearInterval(interval);
    }
    //do whatever here..
}, 2000); 

如果你想在设定的时间(例如 1 分钟)过去后停止它,你可以这样做:

var startTime = new Date().getTime();
var interval = setInterval(function(){
    if(new Date().getTime() - startTime > 60000){
        clearInterval(interval);
        return;
    }
    //do whatever here..
}, 2000);     

关于javascript - 如何在一段时间后或多次操作后停止 setInterval?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9136261/

相关文章:

javascript - 使用EChart.JS绘制水平目标线

javascript - jQuery 触发器在克隆后不触发

javascript - 如何将 FabricJS Canvas 的背景图像设置为来自 Web 服务的图像?

javascript - 如何获取选择数组中元素的索引?

java - 随机#猜谜游戏无限循环

c++ - For 循环遍历生长 vector

javascript - 访问对象内的对象属性

c - 孪生素数 C 代码

python - 如果 x 在 RegEx 列表中

c++ - 我可以在 C++ 中使用 “for … else” 循环吗?