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

计时器没有清除干净?

计时器没有清除干净?

慕沐林林 2018-09-14 09:12:46
我做了一个倒计时计时器,达到的效果是点击元素,触发计时器,倒计时5秒后,清除计时器。再次点击,再次触发计时器(这一步还没有测试),问题在上一步——清除计时器后,计时器仍然还是运作,代码如下:var time=5;//初始化倒计时秒数var timer;//定义计时器yanz.onclick=function(){    var timer=window.setInterval("daoshu()",1000);//触发}function daoshu(){     yanz.style.fontSize="12px";     yanz.innerHTML="短信已發送,"+time+"s內有效";     time--;//倒计时     if(time<=0){//计时完毕         Stop();//清除计时器         yanz.style.fontSize="18px";         yanz.innerHTML="點擊獲取短信驗證碼";     }    console.log(time);//这里能看出,该计时器并未被清除,任然在运作}function Stop(){         window.clearInterval(timer);//清除计时器} 大神指点一下,问题出在哪里了?
查看完整描述

1 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

var timer;//定义计时器yanz.onclick=function(){    var timer=window.setInterval("daoshu()",1000);//错误就在这里,你又定义了一次timer}

倒计时参考代码

<html><head>
    <meta charset="utf-8">
    <script type="text/javascript" src="jquery-2.1.4.min.js"></script>
    <title>test</title></head><body>
    <a id="jwtest" href="javascript:;">重新发送</a></body><script type="text/javascript">$(function(){
    $("#jwtest").click(function(){
        time($(this));
    });
});var wait=60;function time(o) {    if (wait == 0) { 
        o.html("重新发送");
        wait = 60;
    } else { 
        o.html("重新发送("+wait+")");
        wait--; 
        setTimeout(function() {
            time(o);
        },        1000);
    } 
}</script></html>


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

添加回答

举报

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