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

一个关于元素多次触发setInterval定时器的问题!明明在调用前有清除,却为何还是会多次触发

一个关于元素多次触发setInterval定时器的问题!明明在调用前有清除,却为何还是会多次触发

米琪卡哇伊 2018-09-06 09:10:12
//需求:制作一个类似与抽奖转盘的效果,就是在点击抽奖的时候会触发定时器去执行方法var iItems=0;function startMovement (){    var zhuanpanItems=$('#zhuangpan li');    if(iItems<7)    {        iItems++;        zhuanpanItems.removeClass('active').eq(iItems).addClass('active');    }    else{        iItems=0;        zhuanpanItems.removeClass('active').eq(iItems).addClass('active');    }};$('#start').click(function(){  //start 元素是一个div不是input button    clearInterval(timer_1);  //在此处我明明有清除过定时器,却为什么当我多次点击的时候依然会多次触发定时器,导致越点击转的越快    var timer_1=setInterval('startMovement()',200);});以上代码在start.click()调用的时候,是不是因为我的timer_1变量是局部变量,所以导致在上方的clearInterval方法无法获取改变量,导致清楚失败?如果是这样的那么我应该怎么样才能防止多次触发该定时器,因为我必须要在用户点击开始按钮的时候才会去转。望大神指点!
查看完整描述

1 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

timer_1定义在外面(全局变量)就好了。 
PS:感觉你要补充下js变量作用域知识

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

添加回答

举报

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