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无法清除定时器
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
诚邀。
第一次传入true和第二次传入false执行的interval是不一样的。你可以这样试试
运行上诉代码,你自然就会明白。
所以你的clearInterval函数不应该写在repeat函数中。
你传入了true后,根据函数流程设定了定时器,传入false后,又新建了一个定时器...不过由于传入的为false,所以后面的定时器就直接被清除了...所以操作的方式不对.
可以通过其它方式来控制clear的值
方法有很多
两次的
repeat函数不是同一个(JS的函数作用域)可以定义全局的
repeat