关于js中存在多个定时器的处理问题

在项目中遇到过这样的情况:一个列表中需要对每一列数据做处理,而且当中用到了定时器,这就涉及到多个定时器的问题,之前遇到的是一个定时器的问题,所以问题还是比较好解决的,当要处理多个定时器,一起来看看下面的代码(这里以一个下拉列表的列子为案列)

var clearTime={};//预先定义了一个对象

var myNavbar=$("#myNavbar"),navItem=myNavbar.find(".nav-item");
navItem.hover(function(){
      var self=$(this);
      var _timer = $(this).attr('data-timer');//这个属性在这一列是唯一的
      clearTimeout(clearTime[_timer]);//每次进去先清除定时器,以防重复滑过的bug,这样弄可以避免污染其他定时器的影响
      clearTime[_timer]=setTimeout(function(){//保存到对象里面的一个属性
             self.find(".wrap-child").slideDown(300);
      },150)
},function(){
      var self=$(this);
      var _timer = $(this).attr('data-timer');
           clearTimeout(clearTime[_timer])
           clearTime[_timer]=setTimeout(function(){
               self.find(".wrap-child").slideUp(300);
   },150)
})

转载于:https://www.cnblogs.com/yanzai/p/6761046.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值