<script>
var i=0
setTimeout(function t(){
document.getElementById("txt").innerHTML+=(i+++5)%6+" "
if(i<6)setTimeout(t,1000)
},1000)
</script>
你在函数内再次用setInterval调用函数本身,就会产生叠加效果,速度会越来越快。应该一次性用setInterval调用函数即可:
<script>var i = 0
var timer = setInterval(function(){
document.getElementById("text").value = i++
},5000)
function stop2(){
clearInterval(timer)
}
</script>
或者改用setTimeout也可,这是一次性调用的(相当于定时器),那么在函数内再次调用就能实现循环效果了。而setInterval本身就是重复调用的(相当于计时器),不能放在函数内使用:
<script>var i = 0
var timer = 0
window.onload = function start2(){
document.getElementById("text").value = i++
timer = setTimeout(start2, 5000)
}
function stop2(){
clearTimeout(timer)
}
</script>
setTimeout("timedCount()",100)的意思是100毫秒以后,执行timedCount()方法。而这句话本身就在timedCount()方法中,所以形成了一个递归循环