微信小程序几乎给每个组件都提供了一些基本的交互方法,比如tap、longtap、tapstart、tapend等事件,但是没有双击事件doubletap,有时候可能需要双击事件,但是官方并没有提供,所以这里我们就用现有的事件写一个双击事件
首先,我们在 data 里面定义一些需要用到的参数
data: {
    touchStartTime: 0,
    touchEndTime: 0,
    lastTapTime: 0,
    lastTapTimeoutFunc: null
  },分别是触摸开始时间、结束时间,最后一次点击发生时间,时钟函数
基本思路是,如果两次tap发生间隔小于200ms,就当做是双击,否则视为单
tap: function (e) {
      var that = this
      // 控制点击事件在350ms内触发,加这层判断是为了防止长按时会触发点击事件
      if (that.data.touchEndTime - that.data.touchStartTime < 350) {
        // 当前点击的时间
        var currentTime = e.timeStamp
        var lastTapTime = that.data.lastTapTime
        // 更新最后一次点击时间
        that.data.lastTapTime = currentTime
        // 如果两次点击时间在200毫秒内,则认为是双击事件
        if (currentTime - lastTapTime < 200) {
          // 双击事件
          clearTimeout(that.data.lastTapTimeoutFunc);
          console.log("double click")
        } else {
          that.data.lastTapTimeoutFunc = setTimeout(function () {
                      // 单击事件
            console.log("double click")
          }, 200);
        }
      }
    },我们把tap事件绑定到我们的函数
<view bindtap="tap"></view>