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

Ionic (в своем виде "из коробки") автоматически убирает задержку в 300 мс, чтобы Ionic-приложения
чувствовали себя более "по-нативному". В результате, другие решения, такие как
fastclick и в Angular
ngTouch не должны использоваться, чтобы не вызывать конфликтов.

Некоторые браузеры уже умеют убирать задержку с помощью настроек, таких как свойство CSS
touch-events: none или с помощью особых значений метатегов области просмотра. Однако каждый из этих
браузеров до сих пор обрабатывает клики по-разному, например, определяет, когда отменить или прекратить событие
(такое как прокрутка, когда целью является кнопка или долгое удерживание кнопки).
Для браузеров, в которых уже нет задержки в 300 мс, рассмотрите как вариант систему тапов Ionic.
Она может привести в норму то, как будут обрабатываться клики на разных устройствах - то есть, будет ожидаться ответ,
неважно, какое это устройство, платформа или версия. К тому же, Ionic будет предотвращать
 "призрачные клики" (ghostclicks), которые случаются даже в тех браузерах, в которых убрана задержка.

В некоторых случаях третьесторонние библиотеки могут также работать, пока не будет касаний - touch events, которые могут
вступать в конфликт с tap-системой. Например, mapping-библиотеки, такие как Google или Leaflet Maps часто
запускают систему обнаружения касания, которая конфликтует с tap-системой Ionic.

Отключение tap-системы

Чтобы отключить тап для какого-то элемента и всего его дочерних элементов,
добавьте атрибут 
data-tap-disabled="true".

<div data-tap-disabled="true">
    <div id="google-map"></div>
</div>

Дополнительная информация:

  • Тап Ionic работает с JavaScript-прокруткой Ionic.
  • Элементы могут приходить и уходить из DOM, а тап Ionic не будет продолжать добавлять и убирать
    слушателей.
  • Не будет задержки тапа “tap delay” после первого "тапа" (вы можете "тапать" по экрану так быстро, как вы этого хотите, все касания будут считаться кликами)
  • Слушатели минимальных событий добавляются только в документ
  • Корректный фокус для каждого типа ввода ((select, textearea, range) на каждой платформе/устройстве
  • Корректно отображает и прячет виртуальную клавиатуру для каждой платформы/устройства
  • Работает с метками окружающих входных значений
  • Не игнорирует клик, если пользователь сдвигает указатель мыши слишком далеко
  • Добавляет и убирает "активированный" css-класс
  • Многократное  модульное тестирование  для каждого сценария