我設(shè)置了開始按鈕,兩次點擊開始按鈕后沒辦法停止了,什么原因?
<!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("clock").value = time;
?? }
??? var int= setInterval(clock,1000);
?? ?
????? function state(){int=setInterval(clock,1000);}
????? ?
????? ?
??? ?
</script>
</head>
<body>
? <form>
??? <input type="text" id="clock" size="50"? />
??? <input type="button" value="Stop" onclick="clearInterval(int)" />
??? <input type="button" value="state" onclick="state()" />
? </form>
</body>
</html>
2016-03-07
對不起· 我修正一下我的回復(fù)~?? 還有就是? 并不是因為你多設(shè)置了一個setInterval? 而是因為你連續(xù)點擊兩次就產(chǎn)生了兩個。clearInterval一次只能清除一個
2016-03-02
state()中有閉包,里面的int不會被gc回收掉,所以會一直計數(shù),不會停止、而且點擊state按鈕速度慢一點,能比較明顯得感覺到有停滯,說明只clear了其中一個int。也就是前面的var int= setInterval(clock,1000);你也可以在function state(){int=setInterval(clock,1000); console.log(int);}? 并且在chrome中進行測試,在控制臺進行觀察。