我正在尝试停止循环,以便其他东西可以运行,然后在序列中的正确时间再次返回循环。我运行的代码只运行一次,但在使用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,则使用该函数调用不起作用。请问任何想法!?
答案 0 :(得分:1)
尝试使用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();