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

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

計時器程序無法停止計時

寫了好多遍,都是能開始就停不了,能停就不能開始,我希望能實現點擊start按鈕,text框(初始為null)開始計時,點擊stop,計時結束。

<!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html?xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"?/>
<title>無標題文檔</title>
<script?type="text/javascript">
function?gg_1(){
var?s=new?Date();
document.getElementById("time").value=s;
}
var?i=setInterval(gg_1,100);
function?ss(){
clearInterval(i);
}
</script>
</head>

<body>
<input?type="button"?id="start"?value="Start"?onclick="gg_1()"/>
<input?type="text"?id="time"?/>
<input?type="button"?id="stop"?value="Stop"?onclick="ss()"/>
</body>
</html>



正在回答

5 回答

您想要的是計時,而你寫的是時間的,有點矛盾,計時器用setTimeout()比較好,看下我的代碼:(注意看下注釋部分

<!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html?xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"?/>
<title>無標題文檔</title>
<script?type="text/javascript">
??var?i;
??var?num=0;
??function?st(){
	??document.getElementById("time").value=num;
	??num=num+1;
	???i=setTimeout(st,1000);
}

??function?ss(){
	??clearTimeout(i);
	}
	
??//var?i;//這里是第二種寫法
??//var?num=0;
??//var?n=true;
??//function?gg_1(){
??//	document.getElementById("time").value=num;
??//	num=num+1;
??//	?i=setTimeout(gg_1,1000);
??//}
??//function?st(){
??//	if(n==true){
??//		clearTimeout(i);//這里如果把clearTimeout(i);num=0;注釋掉,就和上面的類似;不注釋掉,再次點擊start時,會重新開始計時
??//		num=0;??????????//但是,上面的方法會有個bug,就是,連續多次點擊start按鈕,計時會加速
??//		setTimeout(gg_1,1000);
??//		n=false;
??//		}
??//	}
??//
??//function?ss(){
??//	if(n==false){
??//	clearTimeout(i);
??//	n=true;
??//	}
??//	}
?</script>
</head>
?
<body>
<input?type="button"?id="start"?value="Start"?onclick="st()"/>
<input?type="text"?id="time"?/>
<input?type="button"?id="stop"?value="Stop"?onclick="ss()"/>
</body>
</html>


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

連枝 提問者

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

錦衣無涯

function st()函數是你定義的開始函數對吧,為什么函數里第二句有clearTimeout(i)這個取消定時器的指定?百思不得其解,已經要開始了為什么要定義先取消再執行。
2017-02-05 回復 有任何疑惑可以回復我~
#3

錦衣無涯 回復 錦衣無涯

并沒有重新計時 多此一舉
2017-02-05 回復 有任何疑惑可以回復我~

<!DOCTYPE HTML>

<html>

<head>

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

<title>計時器</title>

<script type="text/javascript">

? var num=0;

? var i;

? function startCount(){

? ? document.getElementById('count').value=num;

? ? num=num+1;

? ? i=setTimeout("startCount()",1000);

? }

? flag=0;

? function stopCount(){

? ? ? if(flag==0){

? ? ? ? ? flag=1;

? ? ? ? ? document.getElementById('but').value="Stop";

? ? ? startCount();

? ? ? }else{

? ? ? ? ? clearTimeout(i);

? ? ? ? ? flag=0;

? ? ? ? ? document.getElementById('but').value="Start";

? ? ? }

? }

? function ce(){

? ? ? if(flag==0){

? ? ? document.getElementById('count').value="清除完畢!";

? ? ? num=0;

? ? ? setTimeout("document.getElementById('count').value=num",1000);

? ? ? }

? }

</script>

</head>

<body>

? <form>

? ? <input type="text" id="count" />

? ? <input type="button" id="but" value="Start" onclick="stopCount()" />

? ? <input type="button" value="Clear" ?onclick="ce()" />

? </form>

</body>

</html>


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

qq_灰色頭像_17

這個可以一直用,start和stop自動切換,從大神那里cope的
2017-09-04 回復 有任何疑惑可以回復我~

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

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

<title>無標題文檔</title>

<script type="text/javascript">

? ? window.onload=function(){

? ? ? timer = setInterval("abc()",1000)

? ? }

? ??

? ? function abc(){

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

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

? ? }

? ? ?

? ? function bcd(){

? ? ? clearInterval(timer);

? ? }


? ? function efg(){

? ? ? timer = setInterval("abc()",1)

? ? }

</script>

</head>

<body>

<input type="button" id="start" value="Start" onclick="efg()"/>

<input type="text" id="time" />

<input type="button" id="stop" value="Stop" onclick="bcd()"/>

</body>

</html>

重寫了一下 這個好像可以了

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

連枝 提問者

謝謝你,我把你的代碼全部拷進DW里運行了一下,start和stop全部失效,還是不行
2016-10-19 回復 有任何疑惑可以回復我~
#2

Shero_25 回復 連枝 提問者

在我這是可以正常運行啦 但是先點開始會有問題 點擊停止 再點開始 這樣反復操作是沒問題的
2016-10-19 回復 有任何疑惑可以回復我~

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

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

<title>無標題文檔</title>

<script type="text/javascript">


function gg_1(){

? ? var s=new Date();

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

}


function aaa(){

? ? setInterval(gg_1,100);

}


var i=setInterval(gg_1,100);

function ss(){ ? ?

? ? clearInterval(i);

}

</script>

</head>

?

<body>

<input type="button" id="start" value="Start" onclick="aaa()"/>

<input type="text" id="time" />

<input type="button" id="stop" value="Stop" onclick="ss()"/>

</body>

</html>


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

Shero_25

還是不對 這樣只有第一次好使 ??
2016-10-19 回復 有任何疑惑可以回復我~

woyebuhui

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

舉報

0/150
提交
取消

計時器程序無法停止計時

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

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

幫助反饋 APP下載

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

公眾號

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