js 函数内部创建的计时器setTimeout调用自身函数,实际上就变成了setInterval,操作不当的话会导致计时器不断在创建
在本函数内部清除计时器的时候带上 return ;
例如:
<script type="text/javascript">
var t=3,timer;
function sleep(){
if(t<=0){
clearTimeout(timer);
alert("over");
//一定要return,不然下面又创建了新的定时器
return;
}
alert("hello");
t--;
timer = setTimeout("sleep()", 1000);
}
sleep();
</script>