停止和启动 setInterval()



我正在尝试停止循环,以便其他事情可以运行,然后在序列中的正确时间再次返回到循环。我运行过一次的代码,但在使用后似乎无法运行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();

最新更新