Нет, не существует ни одного события, которое представляет действие по умолчанию для выбора как мыши, так и сенсорного экрана.Однако вы можете использовать комбинацию событий.
Два наиболее распространенных события, которые пользователи ожидают создать реакцию - это «щелчок» и «запуск прикосновения», но вы не можете просто прослушать оба из них, потому чтоСобытие click обычно запускается после события touchstart (приводящего к двойному триггеру).
Ниже приведен простой код, позволяющий избежать этой проблемы:
function onTapOrClick(element, cb) {
let debounce; // temporarily disables on click events when touchstarts happen
element.addEventListener("touchstart", (event) => {
if (debounce) { clearTimeout(debounce); }
debounce = setTimeout(() => debounce = undefined, 1000); // debounce is 1000ms, could easily be longer
cb(event);
});
element.addEventListener("click", (event) => {
if (debounce) { return; }
cb(event);
});
}