Spec-Zone.ru › jQuery Mobile

vclick

событие vclickверсия добавлена: 1.0

Описание: Обработчик виртуального события клика.

  • jQuery( ".selector" ).on( "vclick", function( event ) { ... } )

Мы предоставляем набор «виртуальных» событий мыши, которые пытаются абстрагировать события мыши и касания. Это позволяет разработчику регистрировать обработчики для основных событий мыши, таких как mousedown, mousemove, mouseup и click, и плагин позаботится о регистрации правильных обработчиков за кулисами, чтобы вызвать обработчик как можно быстрее для этого устройства. В средах с сенсорным управлением плагин сохраняет порядок срабатывания событий, который наблюдается в традиционных средах с мышкой, поэтому, например, vmouseup всегда отправляется до vmousedown, а vmousedown до vclick и т. д. Виртуальные события мыши также нормализуют способ извлечения координатной информации из события, поэтому в средах с сенсорным управлением координаты доступны из свойств pageX, pageY, screenX, screenY, clientX и clientY непосредственно в объекте события.

Обработчик событий jQuery Mobile "vclick" моделирует обработчик события «onclick» на мобильных устройствах.

Этот плагин расширяет встроенный метод jQuery. Если jQuery Mobile не загружен, вызов метода .vclick() может не привести к непосредственной ошибке, так как метод все еще существует. Однако ожидаемого поведения не произойдёт.

$( document ).on( "vclick", "p", function() {
  $( this ).append( "<span style='color:#108040;'> vclick fired... </span>" );
  });

Предупреждение: Используйте vclick с осторожностью

Используйте vclick с осторожностью на сенсорных устройствах. Браузеры на основе Webkit синтезируют mousedown, mouseup, и click события примерно через 300 мс после отправки события touchend. Цель синтезированных событий мыши вычисляется в момент их отправки и основана на местоположении событий касания и, в некоторых случаях, на специфичных для реализации эвристиках, что приводит к различным вычислениям целей на разных устройствах и даже разных версиях ОС для одного и того же устройства. Это означает, что элемент-цель внутри исходных событий касания может отличаться от элемента-цели внутри синтезированных событий мыши.

Мы рекомендуем использовать click вместо vclick всякий раз, когда выполняемое действие может изменить содержимое под точкой касания на экране. Это включает в себя переходы страниц и другие действия, такие как сворачивание/развертывание, которые могут привести к смещению экрана или полному замещению содержимого.

Отмена поведения по умолчанию элемента при клике

Приложения могут вызывать preventDefault() на событии vclick для отмены поведения по умолчанию элемента при клике. На устройствах с мышкой вызов preventDefault() на событии vclick эквивалентен вызову preventDefault() на реальном событии click во время фазы всплытия события. На сенсорных устройствах это немного сложнее, так как фактическое событие click отправляется примерно через 300 мс после отправки события vclick. Для сенсорных устройств вызов preventDefault() на событии vclick запускает код в плагине vmouse, который пытается перехватить следующее событие click, отправленное браузером, во время фазы захвата, и вызывает preventDefault() и stopPropagation() на нём. Как упоминалось в предупреждении выше, иногда трудно сопоставить событие касания с соответствующим событием мыши, потому что цели могут отличаться. По этой причине плагин vmouse также использует обратный способ, пытаясь определить соответствующее событие click по координатам. Существуют ситуации, когда оба способа определения цели и координат не работают, что приводит к отправке события click и либо выполнению действия по умолчанию элемента, либо, в случае смещения или замены содержимого, клику по другому элементу. Если это происходит регулярно для данного элемента/управления, мы рекомендуем использовать click для запуска вашего действия.

Виртуальные события мыши также можно настроить:

  • $.vmouse.moveDistanceThreshold (по умолчанию: 10 пикселей) – Более чем это, значит это событие прокрутки. Вызывается событие vmousecancel и отменяется событие TouchMove.
  • $.vmouse.clickDistanceThreshold (по умолчанию: 10 пикселей) – Если событие vclick уже было перехвачено и находится в списке запрещённых, то vclicks с расстоянием меньше этого расстояния игнорируются.
  • $.vmouse.resetTimerDuration (по умолчанию: 1500 мс) – Больше этого времени, значит это не событие касания. События прокрутки, TouchMove и TouchEnd используют это. Список запрещённых событий очищается.

© The jQuery Foundation and other contributors
Licensed under the MIT License.
https://api.jquerymobile.com/vclick

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API