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

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

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

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

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

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

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

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

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

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

Копируем в буфер обмена средствами javascript

Февраль 25, 2017 г.

Такая задача возникает не часто, но если вы заботитесь о пользователе, и помогаете ему скопировать в буфер обмена нужную информацию - то пользователь будет вам признателен. Так вы заработаете ещё один плюсик в копилку "юзабилити". Разберем ключевые ...

Читать

CKE5 функция создания контейнера-обертки в модели

Март 20, 2025 г.

Делюсь примером кода, для создания обертки в модели экосистемы CKEditor 5. Здесь есть несколько нюансов. Во-первых, нужно проверить, являются ли оборачиваемые элементы валидными по отношению к обертке, в которую мы их помещаем. У CKE элементов ...

Читать

Анимация смены картинок с помощью jquery

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

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

Читать

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

Ноябрь 22, 2019 г.

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

Читать
 

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

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



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