我正在尝试停止循环,以便其他事情可以运行,然后在序列中的正确时间再次返回到循环。我运行过一次的代码,但在使用后似乎无法运行clearInterval();
function runPlanner() {
var plannerInterval = setInterval(function(){
imageCounter++;
var imageTotal = $('li img').length;
if (imageCounter > imageTotal + 1) {
$('li img').hide();
imageCounter = 0;
clearInterval(plannerInterval);
} else {
$('li img:nth-child(' + imageCounter +')').fadeIn('slow');
}
console.log('image counter:',imageCounter);
console.log('image total:',imageTotal);
}, 2500);
}
然后我可以先运行它,使用:
runPlanner();
但是,如果满足条件,即调用clearInterval的条件,则使用该函数调用将不起作用。有什么想法吗!?
尝试使用setTimeout
样式。 这样你就不会再有clearInterval
问题了。
喜欢这个。
function runPlanner() {
imageCounter++;
var imageTotal = $('li img').length;
if (imageCounter > imageTotal + 1) {
$('li img').hide();
imageCounter = 0;
} else {
$('li img:nth-child(' + imageCounter +')').fadeIn('slow');
// re-called `runPlanner` after 2500 sec
setTimeout(runPlanner, 2500);
}
console.log('image counter:',imageCounter);
console.log('image total:',imageTotal);
}
runPlanner();