Я разрабатываю приложение для веб-игр с холстом HTML5, который должен реагировать на события «щелчка» (в общем смысле).Ручка onTouchDown в мобильном браузере и onMouseDown на рабочем столе/ноутбуке?
На мобильной платформе (или сенсорной), что означает реагировать на onTouchDown, на платформе для настольных компьютеров и ноутбуков (с помощью мыши или пэда), что означает реагирование на onMouseDown.
Проблема в том, что если я обрабатываю оба события, то иногда один и тот же «щелчок» приведет к тому, что оба события будут запущены, поэтому я получаю двойную сигнализацию.
Что было бы лучшим способом справиться с этим?
В настоящее время, при первом событии касания я получаю, я выключаю события мыши, но это может быть немного тяжело, если платформа поддерживает оба касания: & щелчки мыши (fi Android-планшет с приложенной клавиатурой/пэдом/мышью)
Измерение задержки между касанием & Нажмите, чтобы игнорировать щелчок после касания, не работает слишком хорошо, так как есть ситуации, когда пользователь может нажимать/нажимать на высокой частоте, поэтому слишком длительная задержка приводит к сбросу двойных кранов/кликов, а слишком короткая задержка позволяет через случайную двойную сигнализацию проскальзывать.
Я посмотрел на обнаружение пользователя-агента, но это кажется довольно хрупким (многие пользовательские агенты там), и не решает случаи, когда на платформе есть и сенсорная панель &.