我正在尝试编写一个程序,该程序将检查某一天过去了多少周。我正在使用JQuery和JavaScript这个代码有点工作,因为它确实给出了我想要的结果,但结果一次跳过4周
例如 它从#Tip0转到#Tip4
我该如何修复
var today = new Date();
var date_start = new Date('2014-07-19'); //date to check from
var timeinmilisec = today.getTime() - date_start.getTime(); //check time past
var weeks = Math.floor(timeinmilisec / (1000 * 60 * 60 * 24)) / 7 ; // calculate weeks
setInterval( //update every 100 miliSec
function () {
for( i = 0; i < 20; i++) {
if (i < weeks ) {
i--;
$("#Tip" + i).hide()
i++;
$("#Tip" + i).show()
}
}
},
100);
答案 0 :(得分:0)
这样的构造需要一个闭包。而且您不希望在循环中更改i
。
var today = new Date();
var date_start = new Date('2014-07-19'); //date to check from
var timeinmilisec = today.getTime() - date_start.getTime(); //check time past
var weeks = Math.floor(timeinmilisec / (1000 * 60 * 60 * 24)) / 7 ; // calculate weeks
setInterval( //update every 100 miliSec
function () {
for( i = 1; i <= 20; i++) {
(function( i ) { //Closure START
if (i < weeks ) {
$("#Tip" + (i - 1)).hide()
$("#Tip" + i).show()
}
})( i ); //Closure END
}
},
100);