touchhend событие в ios webkit не стреляет?

Я пытаюсь реализовать меню для приложения на основе ios webkit, в котором пользователь прикасается / кликает и удерживает кнопку меню («.menu_item»), через 500 мс открывается подменю (div.slide_up_sub_menu), и пользователь должен быть способный скользить пальцем / мышью до элемента подменю и отпускать.

<li class="menu_item"> ASSET MANAGEMENT <div class="slide_up_sub_menu hidden_menu"> <ul class="submenu"> <li>Unified Naming Convention</li> <li>Version Control</li> </ul> </div> </li> 

Затем приложение должно определить, в каком элементе подменю произошло событие touchhend / mouseup. Я привязываю событие touchstart к пункту меню, ожидая 500 мс, а затем сообщая подменю, чтобы показать. Когда пользователь отпускает палец, событие touchhend должно закрывать подменю. Если пользователь остановил свое касание на подменю, он должен быть обнаружен. В настоящее время обнаружение того элемента подменю событие mouseup произошло на работе в Safari на рабочем столе:

 $('ul.submenu li').live('mouseup', function(e){ console.log($(e.currentTarget)); //works on the desktop }); 

но если я делаю то же самое с помощью обработчика touchhend, он не работает на ipad:

 $('ul.submenu li').live('touchend', function(e){ console.log($(e.currentTarget)); //never fires }); 

если я ищу каждое событие touchhend, я могу получить ссылку на элемент родительского подменю, когда я заканчиваю касание элемента подменю:

 $(document.body).bind('touchend', function(e) { console.log($(e.target).html()); //logs ASSET MANAGEMENT }); 

но не ссылается на элемент подменю.

Кто-нибудь может понять, почему событие подписи не запускается в подменю?

благодаря

touchhend не срабатывает, потому что touchcancel выстрелил раньше. Если вам нужна полная обработка сенсорных экранов, вам нужно позвонить

 e.preventDefault() 

в обратном вызове события «touchmove», иначе, когда произойдет событие touchmove, если браузер решит, что это событие прокрутки, оно срабатывает прикосновением и никогда не срабатывает.

Может быть, немного поздно ответить. Это событие никогда не срабатывает, потому что события касания срабатывают в самом элементе, на котором произошел сенсорный экран. Итак, чтобы сделать то, что вы хотите, одним из решений является использование метода document.elementFromPoint, которому вы будете отправлять соответствующие координаты x и y.

Если вам не нужно использовать данные мультитач, вы можете продолжать использовать mouseup на ipad.

далее: http://developer.apple.com/library/IOS/#documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html

  • Как получить слово в указанном месте на WKWebView?
  • Полосы прокрутки WKWebView
  • событие touchMove на мобильном сафари - приводит к перетаскиванию всей страницы
  • Как я могу получить файл с помощью WKWebView?
  • iOS: сбой WebKitLegacy
  • com.apple.WebKit.WebContent drop 113 error: Не удалось найти указанную службу
  • Исправлена ​​навигация, когда прыгали -webkit-overflow-scrolling: touch;
  • Получение всех файлов cookie из WKWebView
  • WebKit Audio искажается на iOS 6 (iPhone 5) впервые после включения питания
  • Исправленные элементы не доступны для кликов, когда я быстро прокручиваю нижнюю часть в iOS Safari 9+
  • iOS / WebKit: touchmove / touchstart не работает на входе & textarea
  • Interesting Posts

    Как сделать запрос GET через AFNetworking?

    Просмотр, который перемещается вместе с клавиатурой

    Как показать законное целое число без знака DICOM 16 на устройстве поддерживает 8-битное целое число без знака?

    Xcode 8 / Swift 3: «Выражение типа UIViewController? не используется "предупреждение

    iPhone: Как сделать UIButton, который вы можете легко нажать?

    Как изменить размер UIView в iOS6 с автозапуском?

    iOS MAILCore: как я могу загружать почтовые вложения и показывать их в веб-виде?

    Как «нажать» на контроллер просмотра дома после успешного входа в систему

    Watchkit: установить глобальный оттенок программным путем

    Изменить значения, не влияя на сохраненные объекты – Realm swift

    html5 + js: разрешение или размер <input type = file capture = camera>

    Динамическая высота TableView в виде прокрутки

    Пользовательский UIButton не выделяется при касании

    UILabel (CALayer) использует большие объемы виртуальной памяти

    iOS, как сохранить аннотацию карты и загрузить ее на картуты?

    Давайте будем гением компьютера.