關(guān)于此任務(wù)遇到的問(wèn)題如何優(yōu)化一下:任務(wù) 補(bǔ)充右邊編輯器第16行,完成取消計(jì)時(shí)器函數(shù)。 補(bǔ)充右邊編輯器第23行,點(diǎn)擊Start按鈕后,開(kāi)始計(jì)數(shù)。 補(bǔ)充右邊編輯器第24行,點(diǎn)擊Stop按鈕后,停止計(jì)數(shù)。
代碼如下,如何解決我點(diǎn)擊兩次start按鈕他就速度加倍(可能不止一倍)了,點(diǎn)擊多次根本停不下來(lái),stop就沒(méi)用了
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>計(jì)時(shí)器</title>
</head>
<script type="text/javascript">
? var num=0;
? var i;
? function startCount(){
? ? 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>
2016-09-14
? var num=0;
? var i;
? function startCount(){
? ? document.getElementById('count').value=num;
? ? num=num+1;
? ? i=setTimeout("startCount()",1000);
? ? document.getElementById('start').onclick=null;
? ??
? }
? function stopCount(){
? ? clearTimeout(i);
? ? document.getElementById('start').onclick=function(){startCount();}
? }
動(dòng)態(tài)修改onclick的值,點(diǎn)擊start后將start的onclick事件設(shè)置為空,點(diǎn)擊stop后將start的onclick重新設(shè)置為startcount。目前沒(méi)發(fā)現(xiàn)其他問(wèn)題,請(qǐng)大神檢查
2016-09-11
做的時(shí)候還真沒(méi)發(fā)現(xiàn)這個(gè)問(wèn)題,你可在每次調(diào)用的時(shí)候
? function startCount(){
?? clearTimeout(i);//在每次調(diào)用這個(gè)函數(shù)的時(shí)候的時(shí)候都把setTimeout給暫停了,然后代碼還會(huì)按照順序執(zhí)行
? ? document.getElementById('count').value=num;
? ? num=num+1;
? ? i=setTimeout("startCount()",1000);
? }
我也是剛剛學(xué),說(shuō)的不一定對(duì),不過(guò)這樣是可以完成的,但是每一次點(diǎn)擊都會(huì)加一。這個(gè)問(wèn)題留給大神吧