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

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

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

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

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

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

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

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

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

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

Создание контейнера DIV средствами чистого js

Август 5, 2018 г.

Иногда я возвращаюсь к практикам без использования jQuery, работая с DOM на чистом js. В таком контексте его называют vanila js. Давайте рассмотрим пример создания DIV контейнера, определения его свойств, пользуясь только javascript без библиотек-оберток. ...

Читать

Функция подсчета не нулевых бит (JS)

Май 9, 2023 г.

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

Читать

Когда jQuery.find может не работать

Декабрь 8, 2012 г.

Обычно, "проблема" возникает с данными, получаемыми через асинхронные запросы (ajax-запрос). Вы пытаетесь выполнить jQuery.find() для полученных данных, а функция возвращает пустой объект. В примере ниже, мы пытаемся извлечь содержимое HTML контейнера ...

Читать

Fancybox прокручивает основное окно к верху

Июль 13, 2016 г.

Сталкивался с таким поведением плагина fancybox. При открытии модального окна, происходит прокрутка в основном окне к самому верху. Как с этим бороться? Это происходит не всегда, а при некоторых случаях верстки. Верстку уже менять проблематично, ...

Читать
 

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

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



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