有什么方法可以让双击事件在使用普通 JavaScript 的手机中工作吗?

İlk*_*ker 4 javascript events

我意识到当我切换设备工具栏时我的双击事件不起作用。我用谷歌搜索,但我只看到了 jQuery 的东西,而且我对 jQuery 一无所知。我该如何进行这项工作?

stuff.addEventListener('dblclick', openOtherStuff)
Run Code Online (Sandbox Code Playgroud)

我正在尝试通过此事件打开一个模式。它在电脑上完美运行,在移动设备上不起作用。

Abd*_*man 5

不幸的是,您无法监听双击事件,但您可以使用 touchstart 事件测量两次单击之间的时间差。

let lastClick = 0;
const ele = document.querySelector('div');
ele.addEventListener('touchstart', function(e) {
  e.preventDefault(); // to disable browser default zoom on double tap
  let date = new Date();
  let time = date.getTime();
  const time_between_taps = 200; // 200ms
  if (time - lastClick < time_between_taps) {
    // do stuff
    console.log("done");
  }
  lastClick = time;
})
Run Code Online (Sandbox Code Playgroud)
body {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  width: 100vw;
}

div {
  width: 100px;
  height: 100px;
  background: rebeccapurple;
  display: flex;
  justify-content: center;
  align-items: center;
}
Run Code Online (Sandbox Code Playgroud)
<div>Touch</div>
Run Code Online (Sandbox Code Playgroud)