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

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

計時器問題

?var attime;

? function onclock(){

? ? var time=new Date(); ? ? ? ? ?

? ? attime=time.getHours()+"時"+time.getMinutes()+"分"+time.getSeconds()+"秒" ;

? ? document.getElementById("clock").value = attime;

? }

? ?var int=setInterval(onclock(),1000);

為什么一直不停閃爍!

正在回答

5 回答

用錯了,應該這樣寫setInterval(onclock,1000);

不能這樣寫:setInterval(onclock(),1000);這樣寫根本就沒把onclock函數傳給setInterval,而是執行了一遍onclock,將執行的結果傳給setInterval,

舉個栗子:

var attime;

? ? ? ? function abc() {

? ? ? ? ? ? return function onclock() {

? ? ? ? ? ? ? ? var time = new Date();

? ? ? ? ? ? ? ? attime = time.getHours() + "時" + time.getMinutes() + "分" + time.getSeconds() + "秒";

? ? ? ? ? ? ? ? document.getElementById("clock").value = attime;

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? var int = setInterval(abc(), 1000);

從結果可看出是先執行bac(),得到返回值onclock,然后在執行setInterval.........

onclock是函數本身,onclock();是執行函數的語句,不能混淆。。。。

所以參數是函數的時候不要順手加括號

最后,解釋一下不停閃爍的原因,只能說是被穆課網站的緩存影響了



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

樓上正解

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

不停的閃爍?setInterval(onclock(),1000) 就是每1000ms(也就是一秒)調用一次onclock() 啊,而且是一直下去,你要停下來的話就?var int=setInterval(onclock(),1000); 在 body里面加按鈕取消計時器 <input type="button" value="Stop" onclick="clearInterval(int)" ?/> 或者用另外一個只執行一次的計時器 setTimeout()

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

定義bian liang mei you yong

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

var int=setInterval(onclock(),1000);

這個代碼錯了。

setInterval(onclock(),1000);

這句代碼的意思是在一秒后,執行onclock()。前面的那些根本不需要

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

舉報

0/150
提交
取消
JavaScript進階篇
  • 參與學習       468969    人
  • 解答問題       22582    個

本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界

進入課程

計時器問題

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

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

幫助反饋 APP下載

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

公眾號

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