今天在使用setInterval()时,发现了一个有意思的事情
代码如下:
var box=document.getElementById("box");//获取id为“box”的元素
var t=document.getElementById("top");//获取id为“t”的元素
var b=document.getElementById("bottom");//获取id为“ b”的元素
var a=0;//定义变量a
function fn(){
box.style.backgroundPosition="0px"+" "+a+"px";//box元素的背景图像定位
console.log(a);//打印a
a--;//a自减
if(a<-958){//如果a小于-957
clearInterval(aaa);//清除定时器aaa
}
}
t.onmouseover=function(){//当鼠标悬停在t上时
clearInterval(aaa);//先清理定时器aaa
var aaa=setInterval(fn,0);//将定时器命名为aaa;
};
运行后,当a-958时,变量a被清除掉,但是定时器却依然在运行。显示错误aaa未被定义。
setInterval()与clearInterval()的一个有趣小现象
原文:http://www.cnblogs.com/yinxianglong/p/5928025.html