#ios #mobile-safari #dom-events #yui #event-delegation
#iOS #мобильный-safari #dom-события #yui #событие-делегирование
Вопрос:
Предисловие: введение делегированных событий нажатия YUI3, похоже, привело к нарушению всех событий нажатия по умолчанию на странице… кнопки, редактирование полей ввода, выбор переключателей и т. Д. Раньше все работало нормально… все, что я сделал, это включил event-tap
модуль в пару соответствующих вызовов YUI везде, где мне нужно делегировать событие on-tap.
Подробности: Мое веб-приложение должно использоваться как на ПК, так и на устройствах с сенсорным экраном. Мои ранние версии просто поддерживали делегирование прослушивателя событий «по щелчку», которое работало нормально (даже на большинстве сенсорных устройств). Теперь я перехожу к использованию более правильных прослушивателей событий при нажатии, когда YUI.Env.UA.touchEnabled
это верно. Но, поскольку я внес обновление, ни одно из моих обычных событий «щелчка» не работает прямо на моем iPad Air (Safari iOS 7.1.1), в то время как на iPod Touch (Safari iOS 6.1.3) работает нормально. И под «обычным событием щелчка» я подразумеваю простые / стандартные кнопки, поля и элементы, в которые встроено поведение щелчка по умолчанию (как упоминалось в моем предисловии выше).
Описание веб-приложения: Извините, мое приложение довольно большое и сложное, чтобы легко включать сюда код; но, в принципе, у меня есть динамический список элементов ( ul
/ li
), для которого я использовал делегирование событий YUI3 для определения подписок по щелчку мыши. Итак, всякий раз, когда пользователь нажимает / нажимает на элемент, должна отображаться панель YUI. На этой панели есть несколько кнопок и текстовых полей. Это прекрасно работало, пока я не представил материал для событий.
ИТАК…
Кто-нибудь знает, является ли это известной ошибкой или чем-то еще? Я не смог ничего найти в Интернете в своих поисках. Click отлично работает на ПК и старых мобильных устройствах — Safari (даже с включенными функциями tap)… только не в новейшем мобильном Safari.
Ответ №1:
После общения с командой YUI в IRC было предложено перейти на использование hammer.js вместо модуля событий YUI. Инженер, который возглавляет интеграцию Hammer в YUI, указал, что Hammer намного лучше справляется с управлением кроссплатформенными событиями жестов / касаний. Я все еще пытаюсь интегрировать раннюю версию, чтобы заставить что-то работать (в конце концов, это будет включено в YUI — возможно, в конце лета 2014 года), и, поскольку нет собственного решения YUI, я отмечаю это как ответ.
Hammer git:
https://github.com/EightMedia/hammer.js
Ранняя работа YUI по интеграции:
https://github.com/tilomitra/yui-hammer
Комментарии:
1. Ссылка на интеграцию с YUI3 hammer гласит, что не использовать для важного кода