亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于之前和現在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可以在限時搶中顯示計時器功能

正在回答

2 回答

寫個清楚點的:

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
提交
取消
信息滾動效果制作
  • 參與學習       47740    人
  • 解答問題       333    個

萌妹子帶您快速學習滾動效果,掌握無縫滾動和歇間性滾動的制作方法

進入課程

關于之前和現在setTimeout問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號