JavaScript---解决单击、双击鼠标冲突

问题描述:一般情况下,双击鼠标一次会执行两次单击鼠标事件和一次双击鼠标事件,那么在双击鼠标时如何阻止两次单击鼠标事件的发生呢?

解决方法:设置定时器,当第一次点击鼠标时,记录下点击的时间,并设置单击事件的Timeout(这里设置为300ms),第二次点击时判断此时点击的时间与上次点击的时间间隔,如果小于指定的时间间隔(300ms),则判定为双击事件,并清除已设置的Timeout,避免触发单击事件。

 // 单击鼠标事件
      this.network.on("click", (e) => {
        // 使用定时器解决单击双击冲突
        timer && clearTimeout(timer);
        // 双击鼠标时,单击事件仍会执行两次
        console.log("timer1=", timer);
        timer = window.setTimeout(() => {
          //延时300毫秒执行以下代码-单击事件具体操作
          console.log("单击鼠标", e);
        }, 300);
      });
      // 双击鼠标事件
      this.network.on("doubleClick", (e) => {
        console.log("timer2=", timer);
        // 清除已设置的Timeout,避免触发单击事件。
        window.clearTimeout(timer);
        // 执行双击事件具体操作
        console.log("双击鼠标", e);
      });

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值