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函数中。
添加回答
举报
0/150
提交
取消