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

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

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

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

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

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

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

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

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

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

Организация не дискретной навигации в Swiper

Март 21, 2025 г.

Один из режимов навигации в Swiper - называется freemode. Он позволяет листать слайды (тащить мышкой или свайпить) без фиксации на границах слайда. Но если вы используете навигацию, то перелистывание будет производиться дискретно по слайдам. В ...

Читать

Вывод в swiper.js слайдере кастомных булетов

Ноябрь 22, 2019 г.

Специально для Артура, задающего вопрос в статье про swiper, привожу пример как вывести в swiper.js вместо штатных булетов навигации некие кастомные текстовые метки. Swiper.js позволяет глубоко кастомизировать все свои элементы. Достаточно обратиться ...

Читать

Генетический алгоритм - пример применения методики

Декабрь 10, 2016 г.

Чтобы убедить вас, что метод генетических алгоритмов - это очень простая штука, был создан данный пример. Мы найдем с помощью генетического алгоритма, что кратчайший путь между двумя точками - это прямая. Постановка задачи: Заданы две точки на плоскости ...

Читать

Найти элемент по его классу в HTML на чистом js

Май 4, 2020 г.

Немного ванильного js, на этот раз: как найти контейнер по указанному классу. Сразу рассмотрим более сложный пример, когда требуется найти элемент с классом .class-child внутри элемента .class-parent. В DOM мы используем функцию element.getElementsByClassName(CLASSNAME), ...

Читать
 

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

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



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