Как бы jquery реализовал сенсорные события для мобильных устройств? - PullRequest
1 голос
/ 23 ноября 2011

Это скорее концептуальный вопрос. После прочтения о Jquery Mobile я подумал о том, как реализовать сенсорные события, такие как «нажатие» или «трение», используя обычный javascript. Поскольку Jquery Mobile основан на javascript, означает ли это, что команда Jquery может добавлять пользовательские события в vanilla javascript, например ontap или ondrag?

Это подводит итог моего мыслительного процесса:

  1. Jquery построен на базовой функциональности ванильного Javascript
  2. базовая функциональность ванильного Javascript не поддерживает сенсорные события; следовательно, Jquery не поддерживает сенсорные события
  3. вывод: для того, чтобы Jquery поддерживал сенсорные события, ванильный Javascript должен включать сенсорные события?

Ответы [ 2 ]

2 голосов
/ 23 ноября 2011

Некоторые мобильные браузеры могут запускать события, связанные с взаимодействием с сенсорным экраном. Mobile Safari (не знаю о других мобильных браузерах, но многое не должно измениться), например, имеет несколько пользовательских событий, таких как touchstart, touchmove или touchend

http://developer.apple.com/library/IOs/#documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html

Вот так jQuery mobile и другие библиотеки могут обрабатывать подобные события. Если вы хотите глубже изучить простую реализацию одного из этих событий в реальном мире, вы можете взглянуть на исходный код этой библиотеки, который обрабатывает событие swipe.

https://github.com/cubiq/SwipeView/blob/master/src/swipeview.js

1 голос
/ 23 ноября 2011

Не уверен, что ваш вопрос, и ваша точка 2, кажется, не согласна с вашей точкой 3, но в любом случае ...

События касания поддерживаются по крайней мере некоторыми браузерами и устройствами:

https://developer.mozilla.org/en/DOM/Touch_events

http://www.quirksmode.org/mobile/advisoryTouch.html

http://developer.apple.com/library/IOs/#documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html

...