停止并启动setInterval()

时间:2013-10-03 13:56:47

标签: javascript jquery

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

1 个答案:

答案 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();