javascript - JS定时器无法清除?
本文介绍了javascript - 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无法清除定时器
解决方案
诚邀。
第一次传入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函数中。
这篇关于javascript - JS定时器无法清除?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文