问答详情
源自:3-1 限时抢

为何不能实时刷新

window.onload=function(){
       function smove(){
                var now=new Date();
                var end=new Date("2017,8,3");
                var LeftTime=document.getElementById("LeftTime");
                var time=end.getTime()-now.getTime();
                var d=parseInt(time/(1000*60*60*24));
                var h=parseInt(time/(1000*60*60))-(d*24);
                var m=parseInt(time/(1000*60))-(d*24*60)-(h*60)
                var s=parseInt(time/(1000))-(d*24*60*60)-(h*60*60)-(m*60);
               LeftTime.innerHTML=d+"天"+h+"小时"+m+"分钟"+s+"秒"; 
       }
        setInterval(smove(),500);
} 
这样为何不能实时刷新,只能手动刷新才能看见时间在缩短。难道是setinterval()
获取不了smove()的元素?还是
- - - - - - - - -  - - - - - - - - - - - - - - - - - - - - - - - - - - - -分割线
window.onload=function(){
        setInterval(function(){
                var now=new Date();
                var end=new Date("2017,8,3");
                var LeftTime=document.getElementById("LeftTime");
                var time=end.getTime()-now.getTime();
                var d=parseInt(time/(1000*60*60*24));
                var h=parseInt(time/(1000*60*60))-(d*24);
                var m=parseInt(time/(1000*60))-(d*24*60)-(h*60)
                var s=parseInt(time/(1000))-(d*24*60*60)-(h*60*60)-(m*60);
               LeftTime.innerHTML=d+"天"+h+"小时"+m+"分钟"+s+"秒";    
        },500);    
}
这样写确可以


提问者:香宝的夫差 2017-08-02 10:17

个回答

  • 香宝的夫差
    2017-08-02 10:50:17

    如果将第一个代码只改动

    setInterval(smove,500);  //就能实现实时变动

    //传入smove()

        只会弹出一次,调用setInterval函数,传递给它的两个参数一个是smove()函数的返回值,一个是1000ms,因    此只会执行smove函数一次

    //传入smove

    调用setInterval函数,将函数smove和1000ms作为参数分别传递给它,每隔一段时间便执行smove 函数