第一部分:setTimeout与clearTimeout
语法:setTimeout(func,millis)
func必须,函数或执行字符串
millis必须,间隔时间毫秒(1s=1000ms)
setTimeout 在执行时,是在载入后延迟指定时间后,去执行一次表达式,仅执行一次
setTimeout 在执行时,它从载入后,每隔指定的时间就执行一次表达式
1、基本用法
----------执行一段代码:
var i=0;
setTimeout("i='this.string';alert(i)",1000);
----------执行一个函数:
var i=0;
setTimeout(function(){i+=1;alert(i);},1000);
2、递归调用
var count=0;
function count(){
count++;
while(count<10){
setTimeout(count,1000);
}
}
3、在类中使用
function User(){
this.name="xilou";
this.sex="男";
this.num=0;
}
User.prototype.count=function(){
this.num+=1;
alert(this.num);
if(this.num>10){return;}
//下面用四种方法测试,一个一个轮流测试。
setTimeout("this.count()",1000);//A:当下面的x.count()调用时会发生错误:对象不支持此属性或方法。
setTimeout("count()",1000);//B:错误显示:缺少对象
setTimeout(count,1000);//C:错误显示:'count'未定义
//下面是第四种
var self=this;
setTimeout(function(){self.count();},1000);//D:正确
}
4、clearTimeout
要使用 clearTimeout( ), 需要给 setTimout( ) 一个名称:timeoutID ,用timeoutID停止调用。
timeoutID
↓
meter1 = setTimeout("count1( )", 1000)
meter2 = setTimeout("count2( )", 1000)
使用meter1 及meter2等 timeoutID 名称可以具有针对某个定时器清除,而互不影响。
第二部分:setInterval与clearInterval
setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。
由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。
语法:setInterval(code,millisec)
code 必需。要调用的函数或要执行的代码串。
millisec 必需。周期性执行或调用 code 之间的时间间隔,以毫秒计。
一个可以传递给 Window.clearInterval() 从而取消对 code 的周期性执行的值。
var leftSeconds = 10;
var intervalId;
$(function(){
$("#btnReg").attr("disabled",true);
intervalId = setInterval("countDown()",1000);
});
function countDown(){
if(leftSeconds <=0){
$("#btnReg").val("submit");
$("#btnReg").attr("disabled",false);
clearInterval(intervalId);
return;
}else{
leftSeconds--;
$("#btnReg").val("请仔细阅读" + leftSeconds + "秒");
}
}