Неужели Я понял это неправильно, или все посты до сих пор отвечали на вопрос, который вы не задавали? По крайней мере, теперь у вас есть множество альтернативных способов проверки поддерживаемых событий :)
В любом случае, относительно вашего вопроса:
Я бы сказал, что это зависит от того, что вы строите. Я предполагаю, что когда вы пишете «примененные селективные события, основанные на этом», вы имеете в виду добавление событий Listeners и -Handlers? Также я предполагаю, что вы не имеете дело с мультитач (пока)?
В общем, если вы хотите, чтобы ваше приложение работало с обоими типами входных событий, у вас не остается выбора, кроме как зарегистрировать прослушиватели для всех этих событий. Возможно, вы уже используете один и тот же обработчик для touchstart
и mousedown
, так что это место, где я должен убедиться, что фактически обрабатывается только одно из последующих идентичных событий (чтобы сохранить циклы и перерисовки процессора, а также помочь избежать возможных побочных эффектов). ).
Когда дело касается сенсорных устройств, говоря об одном касании, я вижу, что мой телефон уровня 10 (2.3.3) генерирует оба события - события мыши, так что «классический» веб (все эти onmousedown
события и т. Д.) ...) будет работать, сенсорные события ... ну, потому что это сенсорное устройство, по-видимому. Но только проверка того, поддерживает ли javascript API TouchEvents, ничего не говорит об устройстве ввода, например: браузер rekonq на рабочем столе kubuntu возвращает true для приведенных выше примеров - но он никогда не сработает, если не используется с сенсорным экраном.
Может быть, более разумным подходом будет разделение устройств через window.navigator.userAgent?