猿问

课程中setTimeout第三个示例程序中有疑问,求

<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
var num=0;
function numCount(){
 document.getElementById('txt').value=num;
 num=num+1;
 setTimeout("numCount()",1000);
 }
</script>
</head>
<body>
<form>
<input type="text" id="txt" />
<input type="button" value="Start" onClick="numCount()" />
</form>
</body>
</html>

为什么一直点击按钮时,计数会加快?

qq_伏特加_0
浏览 1561回答 4
4回答

mov1er

函数内的代码改成clearTimeout(timer)document.getElementById('txt').value=num; num=num+1; var timer=setTimeout("numCount()",1000);

Sper_Et

因为你在每一次点击的时候都执行一次定时器,如果没有先清除的话就会不断叠加

慕婉清0260846

函数内第一行,用clearTimeout(timer); 把后面的定时器赋值给timer;记住一句话定时器用前一定要清,这是我们老师和我们说的.

摩诃迦叶

你一直点击按钮,那么开启的计时器不就一直增加么。  好多个计时器一其在执行num=num+1;那么计数不就加快了么
随时随地看视频慕课网APP
我要回答