如何让我的程序不断运行

时间:2016-02-08 22:56:45

标签: javascript jquery arrays

我想让我的程序不断运行,以便在完成后它会在2秒后再次运行。

继承我的代码:

$(document).ready(function () {

var colorBlocks = [
    'skip',
    'yellow',
    'green',
    'blue',
    'white',
    'orange'
]

function colourBoard() {
    $.each(colorBlocks, function (i) {
        setTimeout(function() {
            $('#' + this).css("background", this);
            setTimeout(function() {
                $('#' + this).css("background", '#212121');
            }.bind(this), i * 200);
        }.bind(this), i * 500);
    });
}
colourBoard();
});

2 个答案:

答案 0 :(得分:2)

我建议使用setInterval()

var myVar = setInterval(myTimer, 1000);

function myTimer() {
    var d = new Date();
    document.getElementById("demo").innerHTML = d.toLocaleTimeString();
}

答案 1 :(得分:1)

您可以在上次更改时自行调用函数。

function colourBoard() {
    $.each(colorBlocks, function (i) {
        setTimeout(function() {
            $('#' + this).css("background", this);
            setTimeout(function() {
                $('#' + this).css("background", '#212121');

                // start over if it's the last one
                if(i === colorBlocks.length-1){
                   colourBoard();
                }


            }.bind(this), i * 200);
        }.bind(this), i * 500);
    });
}
colourBoard();

优点:使用setInterval并没有开始超越函数中的计时器

缺点:需要比使用setInterval

更多的逻辑来暂停/重启