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

js 闭包,如何避免闭包,但是必须引入外部变量

js 闭包,如何避免闭包,但是必须引入外部变量

咕咕问 2016-06-01 16:22:52
我想写一个轮播的js当点击按钮时显示下一张图片,我是通过css3的过渡属性去做的,动画执行完成之后,再将设置的过渡属性去掉。因为是通过css3的过渡,因此去掉过渡属性,必须是在动画完成之后进行的我先使用了setTimeout,这个不行,如果发生连续点击效果就会变乱。之后使用了setIntveal    var donghua = "";function dianji(){if(donghua){  clearInterval(donghua);  donghua = "";    }donghua = setInterval(function(){    console.log("1");     clearInterval(donghua);  donghua = "";},5*1000);}点击慢,或者时间设置的短,没问题,但是如果点击较快就可能会出现不断的进行循环,无法停止。是因为 引入的是外部的变量,变量在变,点击过快的时候   清除不掉循环该怎么做来避免这样的情况
查看完整描述

1 回答

已采纳
?
kumin

TA贡献38条经验 获得超104个赞

可以考虑让按钮失效

在点击按钮后 将按钮设为禁用或者解除click事件 disabled=“disabled”

新增加一个延时计时器  时间是动画完成所需的时间

里面写上解除按钮禁用状态 或者重新绑定click事件


查看完整回答
1 反对 回复 2016-06-29
  • 1 回答
  • 0 关注
  • 2294 浏览
慕课专栏
更多

添加回答

举报

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