javascript中的定时器有两种:一种是一次性定时器,一种是可以持续使用的定时器;
1:一次性定时器setTimeout(a,b);兼容ie的任何版本
该方法接受两个参数,第一个是要执行的代码,第二个是将要执行的时间单位是毫秒。同时该方法返回一个唯一的定时器id方便我们调用和删除该定时器。该方法是BOM的window对象的方法所以我们用的时候可以把对象省略,也就是说setTimeout('alert("aaaa")',10000);和window.setTimeout('alert("aaaa")',10000);是等效的,后面几个方法也是同理。
example:
setTimeout('alert("aaaa")',10000);
这里的函数还可以(下面setInterval(a,b) 也同理)
setTimeout('myfun()',10000);调用一个函数
setTimeout(function(){.....},10000);作为回调函数使用
1.1那么怎么删除一次性定时器呢?利用setTimeout()返回的定时器id.
clearTimeout(timer); 定时执行之前先关闭定时器,清除还没执行的的定时器
var timer=setTimeout('alert("aaaa")',100);
2: 持续使用的定时器setInterval(a,b) 我测试的是兼容IE5+
该方法和一次性定时器setTimeout(a,b);相同,只是第二个参数不是一次性时间而是每次间隔的时间
setInterval('alert("aaaa")',100);
2.1删除持续使用的定时器,也是要利用setInterval()返回的定时器id.
var timer=setInterval('alert("aaaa")',100);
clearInterval(timer);
example:
<script type="text/javascript">
window.οnlοad=function(){ //页面内容加载完毕执行匿名函数
var div=document.getElementById("div1"); //获取div
time(); //执行time()函数
div.οnclick=function(){ //当div被点击的时候执行匿名函数里面的 claerfun()函数
claerfun();
}
}
var timer; //新建一个变量用来后面装定时器返回的id
function time(){ //新建一个名为time函数
timer=setInterval(fun,1000); //创建定时器每隔1000毫秒(1s)就调用fun函数一次,并把定时器id赋值给建好的变量timer。
}
function fun(){
alert("hi");
}
function claerfun(){ //新建一个名为claerfun函数
clearInterval(timer);//删除定时器
}
</script>