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>