JS定时器无法清除?
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无法清除定时器
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你传入了true后,根据函数流程设定了定时器,传入false后,又新建了一个定时器...不过由于传入的为false,所以后面的定时器就直接被清除了...所以操作的方式不对.
可以通过其它方式来控制clear的值
方法有很多
两次的
repeat
函数不是同一个(JS的函数作用域)可以定义全局的
repeat
诚邀。
第一次传入true和第二次传入false执行的interval是不一样的。你可以这样试试
运行上诉代码,你自然就会明白。
所以你的clearInterval函数不应该写在repeat函数中。