Событие onClick на некоторых тач-девайсах

Дмитрий Скородумов  /   20 ноября 2021 г.

В жизни постоянно что-то происходит в первый раз. Сегодня мы впервые в реальности столкнулись с такой штукой, как информационная стойка с тач-экраном. Такая стоечка симпатичная, в основании mini-ITX матерь с 12-вольтовым блоком питания, наверху очень достойный IPS Samsung чуть больше FullHD. Всё хозяйство под Виндой, конечно.

Запустили браузер, открыли наш супер-пупер-мега презентационный сайт, а он мультики не показывает. Кнопка запуска не работает, ошибок в логе нет.

Недолгие раздумья и пробы дали понять, что не происходит события onClick. Лечится неработающий onClick на девайсе с тач-панелью очень просто: добаваляем событие onTouchStart, а ещё лучше onTouchEnd, возникающие в моменты прикосновения и отпускания пальца к/от тач-панели соответственно.

Было:

$(ButtPlay).on("click", '', startAnimation);

Стало:

$(ButtPlay).on("click touchend", '', startAnimation);

Не благодарите.

P. S.

Если нужно использовать только одно событие, то придётся проверять при загрузке страницы, с каким девайсом мы имеем дело:

isTouch = ('ontouchstart' in document.documentElement);