執行個體講解JS中setTimeout()的用法,執行個體講解settimeout

來源:互聯網
上載者:User

執行個體講解JS中setTimeout()的用法,執行個體講解settimeout

本文執行個體講解了JS中setTimeout()的用法,分享給大家供大家參考,具體內容如下

具體代碼:

<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>無標題文檔</title><script type="text/javascript">var timer; //全域變數var i=0; //變數初始化,全域變數//定義函數:開始計時function start(){ //擷取id=result的對象 var obj = document.getElementById("result"); var str = "該程式已經運行了"+i+"秒!"; i++; //展開 i=i+1 //將變數str的內容寫入到id=result中去 obj.value = str; //給表單元素加內容,一般用value屬性      //除表單外的其它標記用JS寫內容,使用innerHTML  //設定延時器 timer = window.setTimeout("start()",10);}//定義函數:停止計時function stop(){ window.clearTimeout(timer);}</script></head><body><input type="button" id="result" value="該程式已經運行了0秒!" /><br /><input type="button" onclick="start()" value="開始" /><input type="button" onclick="stop()" value="停止" /></body></html>

下面來說一說具體的用法:

1、參數
code (必需):(本意是代碼的意思)要調用的函數後要執行的 JavaScript 代碼串。
millisec(必需):在執行代碼前需等待的毫秒數。
提示:
setTimeout() 只執行 code 一次。如果要多次調用,請使用 setInterval() 或者讓 code 自身再次調用 setTimeout()。
2、執行個體

<html><head><scripttype="text/javascript">functiontimedMsg(){vart=setTimeout("alert('5seconds!')",5000)}</script></head><body><form><inputtype="button"value="Displaytimedalertbox!"onClick="timedMsg()"></form><p>Clickonthebuttonabove.Analertboxwillbedisplayedafter5seconds.</p></body></html>

3、執行個體(2)

functionclockon(bgclock){varnow=newDate();varyear=now.getFullYear();varmonth=now.getMonth();vardate=now.getDate();varday=now.getDay();varhour=now.getHours();varminu=now.getMinutes();varsec=now.getSeconds();varweek; month=month+1;if(month<10)month="0"+month;if(date<10)date="0"+date;if(hour<10)hour="0"+hour;if(minu<10)minu="0"+minu;if(sec<10)sec="0"+sec;/*vararr_week=newArray("星期日","星期一","星期二","星期三","星期四","星期五","星期六");week=arr_week[day];*/switch(day){case1:week="星期一";break;case2:week="星期二";break;case3:week="星期三";break;case4:week="星期四";break;case5:week="星期五";break;case6:week="星期六";break;default:week="星期日";break;}vartime="";time=year+"年"+month+"月"+date+"日"+week+""+hour+":"+minu+":"+sec;if(document.all){bgclock.innerHTML="系統公告:["+time+"]"}vartimer=setTimeout("clockon(bgclock)",200);}

4、執行

我們常常會遇到一種情況,setTimeout(code,millisec)中code包含形參,
例如:我們需要在1秒後向使用者提示的資訊儲存於變數msg中,

var msg='1shaspassed!';

此時不論是直接執行

setTimeout(alert(msg),1000);//alert(msg)會被立即執行

還是

setTimeout(“alert(msg)”,1000);//系統報錯msgisnotdefined(chrome)

都不能達到預期的目的,因為定時器會努力地將code轉化為一個function對象,第一個錯例裡定時器立即執行code希求返回一個function對象,結果撲了空;第二個雖然成功封裝出function對象,但是定時器在msg的可見域外執行code,所以msg得不到正確的傳遞
推薦的解決辦法是使用匿名函數回調

var msg='1shaspassed!';setTimeout(function(){alert(msg);},1000);

第一個參數傳遞了一個會調用所需語句的function對象,這樣就解決了code帶參的問題。

以上就是本文的全部內容,希望對大家學習javascript程式設計有所協助。

您可能感興趣的文章:
  • JavaScript window.setTimeout() 的詳細用法
  • javascript setTimeout()傳遞函數參數(包括傳遞對象參數)
  • Js中setTimeout()和setInterval() 何時被調用執行的用法
  • JS中setTimeout()的用法詳解
  • js setTimeout()函數介紹及應用以倒計時為例
  • Javascript的setTimeout()使用閉包特性時需要注意的問題
  • js中setTimeout()與clearTimeout()用法執行個體淺析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.