При использовании встроенного инструмента разработки 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?