$(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)的时候能够正常宣示
写在事件绑定外面。
写在里面每次执行的时候不是同一个函数作用域。上一个函数作用域内的变量已经被销毁。
修改一下,刚才console查看不是undefined,是个空,只能确定else里的timer不是if中的那一个。
或者不想增加全局变量的话可以添加给dom对象(不是jQuery对象)