如何解決計時器中點擊一次增加1s問題
<!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(){ ?????clearTimeout(i);? ????document.getElementById('count').value=num; ????num=num+1; ????i=setTimeout("startCount()",1000); ??} ?? ??function?stopCount(){ ????clearTimeout(i); ??} </script> </head> <body> ??<form> ????<input?type="text"?id="count"?/> ????<input?type="button"?value="Start"?onclick="startCount()"?/> ????<input?type="button"?value="Stop"???onclick="stopCount()"/> ??</form> </body> </html>
雖然增加了clearTimeout(i);以后解決了數(shù)字飆升的問題,但是還存在點一次增加1的問題,有沒有大神能解決這個問題?
2017-06-29
你的startCount()函數(shù)有問題啊,正確的如下,你的cleanTimeout(i)了.
2017-08-01
<!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;
? var flag=false;
??
//增加一個布爾變量用于存儲值代表start是否開始
//這個方法要置于循環(huán)體外
? function flag1(){
? ? if(flag==false){
? ? ? ?startCount();
? ? ? ?flag=true;
? ? }else{
? ? ? ?return 0;
? ? }
? }
? function startCount(){
? ? document.getElementById('count').value=num;
? ? num=num+1;
? ? i=setTimeout("startCount()",1000);
? }
? function stopCount(){
? ? clearTimeout(i);
? ? flag=false;
? }
</script>
</head>
<body>
? <form>
? ? <input type="text" id="count" />
? ? <input type="button" value="Start" onclick="flag1()" />
? ? <input type="button" value="Stop" onclick="stopCount()" ?/>
? </form>
</body>
</html>
增加一個開關(guān)裝置即可。解決了點一次start增快一次速度和num+1的問題。
2017-06-29
startCount() 的 cleanTimeout(i) 破壞了循環(huán). 不要這句就好了.