为了账号安全,请及时绑定邮箱和手机立即绑定

关于之前和现在setTimeout问题

window.onload=function(){

  FrashTime()

 }

    function FrashTime(){     

     var endtime = new Date("2016/10/7,9:54:00");

      var  nowtime= new Date();

       var lefttime=parseInt((endtime.getTime()-nowtime.getTime())/1000);

         var time =50;

        var d=parseInt(lefttime/(24*60*60));

        var h=parseInt(lefttime/(60*60)%24);

       var m=parseInt(lefttime/60%60);

       var s=parseInt(lefttime%60);

   document.getElementById("LeftTime").innerHTML=d+"天"+h+"小时"+m+"分"+s+"秒"

   if(lefttime<=0){

    document.getElementById("LeftTime").innerHTML="团购已经结束"

   }

 

       setTimeout(FrashTime,time);

       

}   

  

按照他讲的只执行一次为什么setTimeout可以在限时抢中显示计时器功能

正在回答

3 回答

写个清楚点的:

1、根据window.onload=function(){ FrashTime() },执行FrashTime,一直执行到setTimeout;

2、根据setTimeout(FrashTime,time),延迟time后,继续执行一次FrashTime,一直执行到setTimeout;

3、根据setTimeout(FrashTime,time),延迟time后,继续执行一次FrashTime,一直执行到setTimeout;

就这么循环下去了,如果将setTimeout写在函数外面,就是只执行一次的效果

1 回复 有任何疑惑可以回复我~

因为setTimeout在FrashTime函数里面调用了,相当于在FrashTime内部执行,然后再去执行setTimeout(FrashTime,time)(即延迟time后再次执行setTimeout),然后继续执行FrashTime,就是一个循环了,这就叫递归调用

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
信息滚动效果制作
  • 参与学习       47753    人
  • 解答问题       321    个

萌妹子带您快速学习滚动效果,掌握无缝滚动和歇间性滚动的制作方法

进入课程

关于之前和现在setTimeout问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信