我想让我的程序不断运行,以便在完成后它会在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();
});
答案 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
更多的逻辑来暂停/重启