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

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

為什么把setInterval放到clock函數中就不能繼續調用呢如下

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>計時器</title>

<script type="text/javascript">

??

? ?function clock(){

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

? ? ? document.getElementById("clck").value = time;

? ? ? ?i=setInterval(clock,1000);

? ?}

? ?var i=setInterval(clock,1000);


</script>

</head>

<body>

? <form>

? ? <input type="text" id="clck" size="50" ?/>

? ? <input type="button" value="start" onclick="clock()"/>

? ? <input type="button" value="Stop" onclick="clearInterval(i)" />

? </form>

</body>

</html>


正在回答

4 回答

還有如果你非要把?var i=setInterval(clock,1000);放到clock()函數中,會導致clock()函數遞歸,系統會每隔1秒調用1次clock()函數并生成一次計時器。。。所以你點了stop鍵也沒用,但是如果你的手速足夠快,1秒鐘內點擊2次以上吧,會發現計時器能夠停止計時。。。。如果點慢了,則遞歸函數會重新生成計時器并刷新時間。

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

不好意思,我弄錯了。下一節里面會講到這種用法,涉及到遞歸。

你這里之所以運行不出來,是因為html中程序是從上往下運行的,文檔一開始先加載上面的JavaScript文件,這時body標簽中的input里的內容都沒有加載完成,而你的寫法中JavaScript里 document.getElementById("clck").value = time;這一句含有input標簽的id “clck”,因為"clck"還沒有定義,所以系統無法識別。

解決方式是使用window.onload=function(){你的js代碼};功能是文檔內容加載完成之后,再最后加載你的js代碼,這樣系統就能夠識別你的id“clck”了。

另外你的函數中i沒有聲明,函數外面的i卻聲明了,有點混亂。


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

仔細看一下setInterval()的兩種用法:

第一種:setInterval(clock,1000);

第二種:setInterval(“clock()”,1000);

如果你把setInterval(clock,1000)放到clock()函數里面,那么這里函數clock()還沒有定義完成,系統無法識別setInterval(clock,1000)中的clock是什么東西,故無法運行。

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

語法不支持

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

舉報

0/150
提交
取消

為什么把setInterval放到clock函數中就不能繼續調用呢如下

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

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

幫助反饋 APP下載

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

公眾號

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