Призрачный щелчок по-прежнему срабатывает в Firefox, несмотря на использование protectDefault - PullRequest
0 голосов
/ 04 апреля 2020

При использовании встроенного инструмента разработки Firefox для эмуляции смартфона / планшета и активации сенсорной эмуляции у меня возникало странное поведение для запускаемых событий.

function handleEvent(event) {
  console.log(event.type);
  event.preventDefault();
  event.stopPropagation();
  event.stopImmediatePropagation();
  return false;
}

document.getElementById('testdiv').addEventListener('touchstart', handleEvent);
document.getElementById('testdiv').addEventListener('pointerdown', handleEvent);
document.getElementById('testdiv').addEventListener('mousedown', handleEvent);

document.getElementById('testdiv').addEventListener('touchend', handleEvent);
document.getElementById('testdiv').addEventListener('pointerup', handleEvent);            
document.getElementById('testdiv').addEventListener('mouseup', handleEvent);            
#testdiv {
  padding: 2em;
  background-color: red;
}
<div id="testdiv">Touch me</div>

Я проверял это на Firefox 74.0.1 (Windows 10). Для эмулированных касаний я получаю этот журнал:

  • указатель вниз
  • указатель старта
  • указатель вверх
  • касание
  • указатель вниз
  • pointerup

Почему я получаю два события указателя мыши за одно касание?

Как я могу предотвратить призрачный щелчок в Firefox?

...