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>
时间: 2024-10-10 23:19:51