清除定時器獲取的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>
疑問:
????剛開始打開頁面,執(zhí)行定時器,而start函數(shù)沒有被調(diào)用,所以不執(zhí)行。當(dāng)?shù)谝淮伟磗top時,清除第一個定時器,然后按start,按第二次stop時,第一個定時器由于被清理掉(只執(zhí)行一次),所以不執(zhí)行,而是執(zhí)行清理start函數(shù)內(nèi)的定時器,此后,無論按start與stop起作用的都只是start函數(shù)里的定時器吧(第一個已經(jīng)失效),是這樣理解嗎?
2016-07-25
(糾正一下,不是定時器,是計時器)
你的理解正確。
2016-07-26
我在start函數(shù)里加了個clearInterval(i);當(dāng)剛刷新時點擊start按鈕,取消上一次的setinterval(),這樣就不會出現(xiàn)clearinterval()失效了,(當(dāng)下次一次執(zhí)行start函數(shù)時,由于此時i的值為?undefined ,不起作用,這樣就set與clear各執(zhí)行一次了)。應(yīng)該這樣理解不會錯吧