当图像长度等于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,但为什么间隔功能会继续运行?
答案 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,它只运行一次。完成图像长度测试后,您可以根据需要创建另一个实例