为什么clearTimeout清除不了setTimeout
vart=3,timer;functionsleep(){if(t<=0){clearTimeout(timer);alert("over")}alert("hello"...
var t=3,timer;
function sleep(){
if(t<=0){
clearTimeout(timer);
alert("over")
}
alert("hello");
t--;
timer = setTimeout("sleep()", 1000);
}
sleep(); 展开
function sleep(){
if(t<=0){
clearTimeout(timer);
alert("over")
}
alert("hello");
t--;
timer = setTimeout("sleep()", 1000);
}
sleep(); 展开
2个回答
展开全部
你没有在clearTimeout后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>
追问
果然,谢谢啦
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询