window.setInterval做定时器和使用window.clearInterval()停止定时器

时间:2021-02-20 00:21:33

window.setInterval()

功能:按照指定的周期(以毫秒计)来调用函数或计算表达式。

语法:setInterval(code,millisec)

 

解释:code:在定时时间到时要执行的JavaScript代码串。

millisec:设定的定时时间,用毫秒数表示。

返回值:定时器的ID值,可用于clearInterval()方法停止指定的定时器。

注:setInterval()方法会不停地调用函数,直到用clearInterval()终止定时或窗口被关闭。


window.clearInterval()

功能:取消由setInterval()方法设置的定时器。

语法:clearInterval(id_of_setinterval)

解释:id_of_setinterval:由setInterval()返回的ID值。该值标识了一个setInterval定时器。

也就是:window.setInterval()返回的就是window.clearInterval的参数


例子:

<script type="text/javascript">
var count = 0;
var timeID;
function timeCount()
{
  document.getElementByIdx('timetxt').value = count;
  count++;
}
function beginCount()
{
  timeID = setInterval("timeCount()",1000);
}
function stopCount()
{
  clearInterval(timeID);
}
</script>
<input type="button" value="开始计时" onclick="beginCount()" />
<input type="text" id="timetxt" size="5" />
<input type="button" value="停止计时" onclick="stopCount()" />
 再如:
var objTimer = window.setInterval("moveDiv()",10)是调动定时器,其中moveDiv是js的一个函数

if(objTimer) window.clearInterval(objTimer)是停止定时器


常用于按键点击后的倒数,如发送验证码按键等。。

//倒计时
var InterValObj; //timer变量,控制时间
var count = 60; //间隔函数,1秒执行
var curCount;//当前剩余秒数
function countSecond() {
    curCount = count;
    $("#validate_btn").attr("disabled", "true");
    InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次
}

function SetRemainTime() {
    if (curCount == 0) {
        window.clearInterval(InterValObj);//停止计时器
        $("#validate_btn").removeAttr("disabled");//启用按钮
        $("#validate_btn").val("重新发送验证码");
    }
    else {
        curCount--;
        $("#validate_btn").val("再次发送需等待" + curCount + "秒");
    }
}