Обработка события click или touchstart

Широкое применение мобильных устройств для доступа в интернет накладывает свои специфические требования на разработку веб-сайтов. Привычный обработчик onclick может срабатывать совместно с ontouchstart, а может не срабатывать вовсе на мобильном устройстве.

Но вам скорее всего нужно фиксировать лишь факт нажатия пользователя на элемент, причем однократно.

Наверное, стоит начать с того как отличить какое событие произошло на самом деле, это можно подсмотреть в атрибутах объекта event:

Если происходят оба события, а код выполнить необходимо лишь один раз, то нужно как то сообщить следующему обработчику, что работа уже выполнена.

Функция event.stopPropogation(), остановит передачу обработки в родительский контейнер и нам не подходит.

Функция event.stopImmediatePropagation(), прекратит обработку текущего типа события, если обработчиков несколько, но события другого типа сработают.

Можно использовать какую то глобальную переменную или добавить признак в объект event, чтобы прочитать его в следующем обработчике. Это рабочие варианты, но есть более элегантное решение:

В большинстве случаев это наиболее простой вариант.

Мало букафф? Читайте есчо !

Асинхронная загрузка и инициализация js скрипта

Май 13, 2022 г.

С тех пор как стало возможным указать загружаемому в HTML документе скрипту флаги-аттрибуты async и defer, стало необходимо понимать то, в какой очередности скрипты будут исполнены, если они зависят друг от друга. Так если ваш скрипт зависит от ...

Читать

Как получить значение из mui TextField

Июнь 18, 2023 г.

React компонент TextField библиотеки @mui/material - это сложный элемент и получить значение через свойство ref нельзя. Разработчики понимали, что доступ к HTMLInputElement внутри компонента нужно предоставить, и потому реализовали свойство inputRef, ...

Читать

Кастомизация infoWindow на картах гугл

Январь 25, 2018 г.

Поп-ап на картах гугл, объект google.maps.InfoWindow, привлекателен возможностью вставки в него собственного HTML контента. Но кастомизация внешнего вида ...

Читать

Раздвигающееся вертикальное меню Drupal 6

Сентябрь 7, 2013 г.

Эта задача из разряда useability. Drupal может штатно создавать блоки вертикальных иерархических меню. Неудобным будет тот случай, когда мы хотим попасть на страницу в глубине иерархии этого меню. Нам придется последовательно заходить на родительские ...

Читать
 

Комментарии к «Обработка события click или touchstart»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: