无法清除定时器

$(document).ready(function() {

$(".center-gold-pic").on("click",function(){
    var timer=''
    var div=$("#animation-pic");
    div.addClass("hide");
    var divs=$("#animation-pics");
    divs.addClass('show');
    //判断状态
if (divs.hasClass('stop')){
         divs.removeClass('stop');
         //定时发送请求
         timer=setInterval(function(){
           var left = Math.ceil(Math.random() * (9 - 0) + 0) * 22;
           var top = Math.ceil(Math.random() * (9 - 0) + 0) *22;

       $.post('ajax.txt', function(data) {
            if(data==1){
              var imgObj=$(document.createElement("div")) ;
              imgObj.css({
                  "left":left+10,
                  "top":top+10,
                  "background-repeat":"no-repeat",
                   "background-position":"center",
                   "background-size":"cover",
                   "height":"35px",
                    "width":"35px",
                    "border-radius":"100%",
                    "position":"absolute",
                   "background-image":"url(./imgs/images/7.png)",
                  });
              $("#scan-gold-picc").append(imgObj);
             
             }else{
                setTimeout(function(){show1();}, 4000)
                 };
            });
        
       },5000);

  }else{
      alert(123)
      divs.addClass('stop');
      clearInterval(timer); 
       return;
      }

});

当我再次点击的时候发现定时器不能清除;但是我用alert(123)的时候能够正常宣示

 var timer=''

写在事件绑定外面。
写在里面每次执行的时候不是同一个函数作用域。上一个函数作用域内的变量已经被销毁。
修改一下,刚才console查看不是undefined,是个空,只能确定else里的timer不是if中的那一个。

或者不想增加全局变量的话可以添加给dom对象(不是jQuery对象)

divs[0].timer=setInterval()
clearInterval(divs[0].timer); 
  • PHP怎么将超长数值转换为字符串?
  • 长时间网站未操作,七牛上传失败是什么原因?
  • 文件上传,及时刷新页面显示
  • thinkphp中为Input file加了onchange事件之后为什么提示无文件被上传?
  • php和java联合开发一个网站后台逻辑
  • 关于一个vue2插件的部分源码疑惑
  • Docker Compose的yml文件中privileged参数的作用是什么?
  • Invalid argument supplied for foreach()
  • JavaScript RegExp对象exec方法返回的数组中的值为什么并不都能被模式匹配?
  • 想实现图片切换功能,但是最终效果是点击右边小图,左边显示的一直是最后一张图
  • java web工程中如何使用vue2的服务器渲染?能用的话有什么例子没有?