Можно ли распознать сенсорные события в браузере Safari на iPad с помощью jQuery?
Я использовал события mouseOver и mouseOut в веб-приложении. Существуют ли подобные события для браузера Safari на iPad, поскольку нет таких событий, как mouseOut и mouseMove?
jquery
ipad
events
mobile-safari
jquery-events
Абхишек Б.
источник
источник
Если вы используете jQuery 1.7+, это даже проще, чем все остальные ответы.
источник
$('#whatever').on('touchstart click', function(){ /* do something... */ });
$('#whatever').on({ 'touchstart' : function(ev){}});
,ev
кажется, не имеет какую - либо информацию о прикосновениях (прикосновения, targetTouches или changedTouches)ev.originalEvent
.Самый простой подход заключается в использовании мультитач-библиотеки JavaScript, такой как Hammer.js . Затем вы можете написать код:
И вы можете продолжать идти. Он поддерживает касание, двойное касание, пролистывание, удержание, преобразование (т.е. сжатие) и перетаскивание. События касания также запускаются, когда происходят эквивалентные действия мыши, поэтому вам не нужно писать два набора обработчиков событий. Да, и вам нужен плагин jQuery, если вы хотите иметь возможность писать в jQueryish, как я.
источник
Использование сенсорного запуска или касания в одиночку не является хорошим решением, поскольку при прокрутке страницы устройство распознает ее как касание или касание. Таким образом, лучший способ обнаружить событие касания и нажатия одновременно - просто обнаружить события касания, которые не перемещают экран (прокрутка). Для этого просто добавьте этот код в ваше приложение:
Я протестировал его, и он отлично работает для меня на iPad и iPhone. Он обнаруживает касание и может легко различать касание и прокрутку касанием.
источник
Вы можете использовать .on () для захвата нескольких событий, а затем проверить их на прикосновение, например:
источник
.bind
не рекомендуется. Вы должны использовать.on
В jQuery Core нет ничего особенного, но вы можете прочитать на странице jQuery Mobile Events о различных сенсорных событиях, которые также работают на устройствах, отличных от iOS.
Они есть:
Также обратите внимание, что во время событий прокрутки (на основе касания на мобильных устройствах) устройства iOS замораживают манипулирование DOM при прокрутке.
источник
Я был немного обеспокоен использованием только touchmove для моего проекта, так как он, кажется, срабатывает только тогда, когда ваше касание перемещается из одного места в другое (а не при первоначальном касании). Так что я объединил его с touchstart , и это, кажется, работает очень хорошо для начального прикосновения и любых движений.
источник
document.getElementById("ttime").innerHTML = ((new Date()) - touchTime); touchTime = new Date();
Я только что протестировал плагин BenQor's GitHub jQuery Touch Events для версий jQuery 1.4 и 1.7+. Это легкий и отлично работает с обоими ,
on
иbind
обеспечивая при этом поддержку исчерпывающего набора сенсорных событий.источник