課程
/前端開發
/JavaScript
/JavaScript進階篇
為什么連續點擊start可以加速,而連續點擊stop可以減速,原理是不是這樣?:點一次啟動一個num+1的函數,如果一秒內點了4次start,那么一秒就num+4。
2016-08-31
源自:JavaScript進階篇 8-6
正在回答
看下面的代碼,設置雙計時,可用于圍棋比賽:
<!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?num=0; ???var?i; ???var?n=true; ???function?st(){ ???document.getElementById("txt").value=num; ???num=num+1; ???i=setTimeout("st()",1000); ???} function?startCount(){ if(n==true){//n初始值為true,可以執行以下代碼,執行到n=false停止 ?num=0; ????clearTimeout(i); setTimeout("st()",1000); n=false; } }??? function?stopCount(){ if(n==false){//當n=false,執行以下代碼,執行到n=true停止 num=0; clearTimeout(i); setTimeout("st()",1000); ?//?clearTimeout(i); ???n=true;//而當n=true;再次執行startCount()函數,按照如此單一的循環模式, ???//不會再出現多次點擊start出現計時加速的現象 ?? ??} ???????} </script>? <style?type="text/css"> *{padding:0;?margin:0;?font-size:24px;?color:#F00;} #txt{text-align:center;} input{color:?#C33;?font-size:24px;?font-family:"華文隸書";?font-weight:bold;} </style> </head> <body> <form> <input?type="button"?value="start"?onclick="startCount()"?/> ???<input?type="text"?id="txt"?/> ???<input?type="button"?value="start"?onclick="stopCount()"?/> </form> </body> </html>
慕村1994845
那是因為你沒點擊一次開始 ?定時器就啟動一個 ?多個定時器運行 自然速度就快 ? ?而點擊一次 結束 ?僅僅取消一個定時器 ? 正確的方法應該是 ?點擊一次開始之后 ? 就讓 ?開始按鈕再點擊不起作用
var num=0;
? var i;
? var n=true;
? function a(){
? ?document.getElementById('count').value=num;
? ? i=setTimeout("a()",1000);
? ? num=num+1;
? }?
?
? function startCount(){
? ? if(n==true){
? ? ? ? i=setTimeout("a()",1000);
? ? ? ? n=false;
? ? }
? }
??
? function stopCount(){
? ? ? if(n==false){
? ? ? ? clearTimeout(i);
? ? ? ? n=true;
? ? ? }
//這是之前有同學對這個問題的回答,可以解決多次點擊start加速的問題
小藺子
慕標3062565
不光是點start,你試試在一個不影響代碼的地方加空格,也會導致加速,具體原因就不清楚了。
舉報
本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界
5 回答為什么連續點擊start速度會變快,而且stop不下來
2 回答在這個代碼在 連續多次點擊start按鈕 計次速度明顯變快,且點擊stop停不下來,這是為什么?
2 回答為什么不斷點擊start計時速度越來越快?
2 回答連續點擊start之后,數字增長很快,需要點擊多次stop才能停止下來。
1 回答當點多次start時速度會加快
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-10-25
看下面的代碼,設置雙計時,可用于圍棋比賽:
2016-09-06
那是因為你沒點擊一次開始 ?定時器就啟動一個 ?多個定時器運行 自然速度就快 ? ?而點擊一次 結束 ?僅僅取消一個定時器 ? 正確的方法應該是 ?點擊一次開始之后 ? 就讓 ?開始按鈕再點擊不起作用
var num=0;
? var i;
? var n=true;
? function a(){
? ?document.getElementById('count').value=num;
? ? i=setTimeout("a()",1000);
? ? num=num+1;
? }?
?
? function startCount(){
? ? if(n==true){
? ? ? ? i=setTimeout("a()",1000);
? ? ? ? n=false;
? ? }
? }
??
? function stopCount(){
? ? ? if(n==false){
? ? ? ? clearTimeout(i);
? ? ? ? n=true;
? ? ? }
? }
//這是之前有同學對這個問題的回答,可以解決多次點擊start加速的問題
2016-09-01
不光是點start,你試試在一個不影響代碼的地方加空格,也會導致加速,具體原因就不清楚了。