События jQuery click и touchstart

мне было интересно узнать о различиях между событием click и touchstart? Что я знаю в настоящее время, так это то, что touchstart больше подходит для сенсорных экранов, но щелчок работает как с сенсорными действиями, так и с щелчками мыши. Я немного запутался, чтобы проверить эти два, и любой из них вызовет задержку в любой ситуации?


person nihulus    schedule 25.05.2012    source источник


Ответы (2)


Щелчок рассматривается как жест. Он имеет задержку около 300 мс, потому что устройство ожидает, чтобы увидеть, является ли касание частью жеста, такого как двойное касание для увеличения. Touchstart/end не имеет задержки, поскольку находится на более низком уровне, чем жесты.

person Grezzo    schedule 25.05.2012
comment
Обратите внимание, что вы не должны привязываться к обоим, так как это сработает дважды при использовании на сенсорном устройстве. В моем текущем проекте я проверяю, существует ли touchstart, и если это так, назначьте var (например, touchAction = touchstart), иначе назначьте щелчок, тогда я могу просто привязаться к clickAction, и он оптимизирован для обоих. - person Grezzo; 25.05.2012
comment
Спасибо за ответ, есть идеи, какие ситуации наиболее подходят для этих двух действий? Я пытаюсь проанализировать их в отчете, нужны разные идеи. - person nihulus; 25.05.2012
comment
Я не уверен, что понимаю, что вы имеете в виду. В своем коде я использую touchstart в браузерах, которые его поддерживают, и нажимаю любой другой браузер. Это отвечает на ваш вопрос? - person Grezzo; 25.05.2012
comment
@Grezzo Греццо, это не очень хорошая идея. Мой настольный Chrome 30.x, без сенсорного экрана, на самом деле имеет window.ontouchstart, но никогда не запускает его. Кроме того, у вас могут быть устройства с сенсорными экранами (современные ноутбуки), но пользователь по-прежнему использует мышь. - person Henrik Heimbuerger; 16.09.2013
comment
@hheimbuerger Справедливое замечание. Я не рассматривал устройства с несколькими входами или то, что события будут присутствовать даже на платформах, которые их не поддерживают. - person Grezzo; 17.09.2013

Да, щелчок вызовет задержку около 200-300 мс, если мне не изменяет память. Click, по сути, ожидает сенсорного запуска, а затем сенсорного завершения.

person codemonkey    schedule 25.05.2012