检查过去几周

时间:2014-10-20 02:00:28

标签: javascript jquery html

我正在尝试编写一个程序,该程序将检查某一天过去了多少周。我正在使用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);

1 个答案:

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