通过 touchstart & click 模拟长按事件

正常模拟一个长按事件,我们是通过 toushstart & touchend 触发时间差来实现, 今天在开发组件库时看到字节的组件库模拟长按事件的实现, 记录一下

<body>
  <button>长按</button>
  <script>
    let timer
    document.querySelector('button').addEventListener('touchstart', handleTouchStart)
    document.querySelector('button').addEventListener('click', handleClick)
    function handleTouchStart() {
      timer = setTimeout(() => {
        timer = 0
        console.log('longpress')
      }, 1000)
    }

    function handleClick() {
      if (timer !== 0) {
        clearTimeout(timer)
      }
    }
  </script>
</body>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容