每2秒运行一次功能,直到发生变化

时间:2017-01-05 22:31:11

标签: javascript jquery

当图像长度等于0时,我怎样才能使间隔函数停止运行,

我的代码

var theImages = $('.awesome-slider .slides img');

function checkImages(){
    theImages = $('.awesome-slider .slider img');
    // other stuff happens here but only want it to run once
}

if(theImages.length == 0){
    window.setInterval(function (){
            checkImages();
    })
}

图像长度确实最终超过0,但为什么间隔功能会继续运行?

3 个答案:

答案 0 :(得分:1)

使用let interval = window.setInterval(function () { checkImages(); if (theImages.length == 0) { clearInterval(interval); }; }, 2000);

view

答案 1 :(得分:1)

我建议您使用setTimeout代替setInterval



var theImages = $('.awesome-slider .slides img');

function checkImages() {
  if (theImages.length !== 0) {
    setTimeout(function() {
      checkImages();
    }, 2000);
  }
}

checkImages();




答案 2 :(得分:0)

使用window.setTimeout而不是interval。

根据定义,如果您没有明确关闭间隔,则间隔将继续。 你需要setTimeout,它只运行一次。完成图像长度测试后,您可以根据需要创建另一个实例