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

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

有一個bug,請指教

當連續點擊開始開始按鈕2次以上。停止按鈕就失去作用了

正在回答

4 回答

????function?mm(){
????????clearInterval(i);
???i=setInterval("clock()",100);?
???}

可以通過在開始事件開頭設置關閉,保證每次點擊開始,前一次定時器就已經關閉

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

慕客學渣會總瓢把子3201537 提問者

非常感謝!> .<
2016-06-14 回復 有任何疑惑可以回復我~
#2

狼吻小紅帽 回復 慕客學渣會總瓢把子3201537 提問者

111
2016-06-14 回復 有任何疑惑可以回復我~
#3

慕客學渣會總瓢把子3201537 提問者 回復 狼吻小紅帽

function mm(){ clearInterval(i); i=setInterval("clock()",100); } 沒效果
2016-06-14 回復 有任何疑惑可以回復我~
#4

狼吻小紅帽 回復 慕客學渣會總瓢把子3201537 提問者

不應該,我剛才試了下,是成功的!你確定你就改了這一處地方?
2016-06-15 回復 有任何疑惑可以回復我~
查看1條回復

停不下來了

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

因為你的mm()函數實際上是添加一個循環計時器,你運行第一次添加一個,運行第一次添加第二個,而clear清除只能清除一個,再此添加一個之后又可以清除一個了。

也就是代碼刷新之前,clearInterval和clearTimeout只能用一次;而添加setInterval和setTimeout確可以無數次添加。

<!DOCTYPE?HTML>
<html>
<head>
<meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8">
<title>計時器</title>
<script?type="text/javascript">
var?times=0;
???function?clock(){
????//??var?time=new?Date();???????????????	??
??????document.getElementById("clock").value?=?times;
	??times++;
???}
????var?i?=?setInterval(clock,1000);
		
	function?stop(){
		i?=?setInterval(clock,1000);
	}

</script>
</head>
<body>
??<form>
????<input?type="text"?id="clock"?size="50"??/>
????<input?type="button"?value="Stop"?onclick="clearInterval(i)"?/>
?????<input?type="button"?value="Start"??onclick="stop()"??/>
??</form>
</body>
</html>

你試一下上面的代碼,初始運行時每秒+1,點擊Stop停止計數。

你再點擊一下Start,運行為每秒+1;第二次點擊變成每秒+1+1;第三次點擊變成每秒+1+1+1。

最后點擊Stop,變成每秒+1+1;第二次點擊還是每秒+1+1。

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

我們知道定時器會返回一個值就是他的id,用于停止定時器。當你開始按鈕連點兩下時,獲取到的id就是第二次點擊開始的id,而第一次開始的id就無法獲取,從而停止按鈕只能停止第二次的時間,而第一次點擊的開始時間會一直執行下去

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

舉報

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

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

進入課程

有一個bug,請指教

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

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

幫助反饋 APP下載

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

公眾號

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