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

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

清除定時器獲取的id返回值,function clock(){ var mydate = new Date(); document.getElementById("con").value =mydate; } i = setInterval(clock,1000);function start(){ i = setInterval(clock,1000); }

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Document</title>

<script type="text/javascript">

function clock(){

var mydate = new Date();

document.getElementById("con").value =mydate;

}

i = setInterval(clock,1000);

function start(){

i = setInterval(clock,1000) ;

}

</script>

</head>

<body>

<form >

<input type="text" name="text" id="con" size="50"/>

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

<input type="button" name="button" value="stop" onclick="clearInterval(i)"/>


</form>

</body>

</html>

疑問:

????剛開始打開頁面,執行定時器,而start函數沒有被調用,所以不執行。當第一次按stop時,清除第一個定時器,然后按start,按第二次stop時,第一個定時器由于被清理掉(只執行一次),所以不執行,而是執行清理start函數內的定時器,此后,無論按start與stop起作用的都只是start函數里的定時器吧(第一個已經失效),是這樣理解嗎?

正在回答

2 回答

(糾正一下,不是定時器,是計時器)

你的理解正確。

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

小小H羅 提問者

非常感謝!
2016-07-25 回復 有任何疑惑可以回復我~
#2

小小H羅 提問者

你好,我在復習時候,發現當剛打開頁面就按start,再按stop,停止不了計時器。這是為什么?怎么能修改呢?
2016-07-26 回復 有任何疑惑可以回復我~
#3

Aubyn 回復 小小H羅 提問者

http://blog.csdn.net/manmanwei/article/details/51833923。 里面有提到:setInterval()每執行一次,則返回一個唯一id。所以每執行一次setInterval(),就需要(在下一次執行setInterval()之前)調用一次clearInterval(),否則會出現clearInterval()失效。
2016-07-26 回復 有任何疑惑可以回復我~
#4

Aubyn 回復 小小H羅 提問者

1)只有點擊start才執行計時,打開頁面默認不執行(setInterval的返回值必須是全局變量);2)start按鈕先不顯示,點擊stop后才顯示。(其他方法……)
2016-07-26 回復 有任何疑惑可以回復我~
#5

小小H羅 提問者 回復 Aubyn

在下方回答了我的思路,希望看看指點下!
2016-07-26 回復 有任何疑惑可以回復我~
查看2條回復
function?clock(){
var?mydate?=?new?Date();
document.getElementById("con").value?=mydate;
}
var?i?;
i?=?setInterval(clock,1000);
function?start(){
clearInterval(i);
i?=?setInterval(clock,1000);
}

我在start函數里加了個clearInterval(i);當剛刷新時點擊start按鈕,取消上一次的setinterval(),這樣就不會出現clearinterval()失效了,(當下次一次執行start函數時,由于此時i的值為?undefined ,不起作用,這樣就set與clear各執行一次了)。應該這樣理解不會錯吧

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

Aubyn

理解正確,(但是 i 的值并不是undefined,請自行檢查)
2016-07-27 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

清除定時器獲取的id返回值,function clock(){ var mydate = new Date(); document.getElementById("con").value =mydate; } i = setInterval(clock,1000);function start(){ i = setInterval(clock,1000); }

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

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

幫助反饋 APP下載

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

公眾號

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