为了账号安全,请及时绑定邮箱和手机立即绑定

JS定时器无法清除?

JS定时器无法清除?

阿波罗的战车 2018-09-03 13:13:17
 function loginState(is) {        var msg = $("#submit_btn");        var count = 0;        var clear = is;        var pints_interval;        //触发定时器        pints_interval = setInterval(repeat, 500);        function repeat() {            if (clear) {                var mval = msg.val();                if (count < 3) {                    count++;                    mval += ".";                    msg.val(mval);                }                else {                    msg.val("登录");                    count = 0;                }            } else if (!clear) {                if (pints_interval) {                    clearInterval(pints_interval); //清除定时器                    pints_interval = null;                }            }        }    }loginState(true);函数传入true OR false 为什么先传入true启动定时器,之后传入false无法清除定时器
查看完整描述

1 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

诚邀。

第一次传入true和第二次传入false执行的interval是不一样的。你可以这样试试

 function loginState(is) {        var clear = is;        var pints_interval;        //触发定时器
        pints_interval = setInterval(repeat, 500);        function repeat() {            
        if (clear) {                console.log('excute interval and the id is: ' + pints_interval );
            } else if (!clear) {                if (pints_interval) {
                    clearInterval(pints_interval); //清除定时器
                    console.log('clear intervaland the id is: ' + pints_interval );
                    pints_interval = null;
                }
            }
        }
    }

运行上诉代码,你自然就会明白。

所以你的clearInterval函数不应该写在repeat函数中。


查看完整回答
反对 回复 2018-10-14
  • 1 回答
  • 0 关注
  • 1601 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信