湖上湖
run = function(num, index){ var $elem = $('.countNum').eq(index);
var numMemo = num; return function() {
num--; if (num < 0) {
num = numMemo;
}
$elem.text(num);
};
};大致思路如此。重点就是 run 方法返回的也是一个函数。如图:run = function(arr){ var $countNums = $('.countNum'); var arrCopy = arr.slice(0); return function() { // var a = []
for (var i = 0, len = arrCopy.length; i < len; i++) {
arrCopy[i] = arrCopy[i] - 1; if (arrCopy[i] < 0) {
arrCopy[i] = arr[i];
} // a[i] = arrCopy[i]
$countNums.eq(i).text(arrCopy[i]);
} // console.log(a);
};
};run = function(arr, done){ var $countNums = $('.countNum'); var len = arr.length; var arrTemp = []; for (var i = 0; i < arr.length; i++) {
arrTemp[i] = 0;
} return function() { // 是否所有的都完成了
var allOff = true; for (var i = 0; i < len; i++) { if (arrTemp[i] <= arr[i]) { // 只要有一个没完成
// 那就是false
allOff = false;
$countNums.eq(i).text(arr[i]);
arrTemp[i] = arrTemp[i] + 1;
}
} if (allOff && done) {
done();
}
};
};var runTimer = run([20, 14, 6, 9], function() { // 都完成后清空定时器
clearTimeout(timer);
});var timer = setInterval(runTimer, 1000);