pukhalski / tap

1Kb library for easy unified handling of user interactions such as mouse, touch and pointer events.
https://github.com/pukhalski/tap/archive/master.zip
MIT License
527 stars 45 forks source link

Не работает в IE9, Android 4.0 webkit. #12

Closed MrEfrem closed 9 years ago

MrEfrem commented 9 years ago

В webkit не срабатывает обработчик: $('.my-class').on('tap','.my-class2 [data-my-attr]',function()...

В IE9 после срабатывания обработчика $('.my-class').find('.event').on('tap','.title',function().... перестают срабатывать другие обработчики с этим же событием.

MrEfrem commented 9 years ago

Похоже событие некорректно всплывает?

pukhalski commented 9 years ago

Спасибо, поправлю в ближайшее время, что происходит при делегации.

MrEfrem commented 9 years ago

Можно узнать, когда это ближайшее время наступит? Я всё жду жду, чтобы начать уже пользоваться вашей библиотекой в продакшене, т.к. нынешнее решение "jquery-pointerevents" уже давно не развивается и если честно не везде хорошо с первого раза отрабатывает.

pukhalski commented 9 years ago

Проверил обработку делегированных ивентов в IE9 и Android 4.0. Отрабатывает и там и там.

Можешь предоставить свой неработающий пример на jsfiddle/jsbin?

Вот тестовый пример, который работает: http://jsfiddle.net/4cLbmms7/2/embedded/result/

С возможностью редактирования: http://jsfiddle.net/4cLbmms7/2/

MrEfrem commented 9 years ago

Да всё работает на вашем примере. Я более тщательно попробовал разобраться, оказывается у меня другая библиотека слушала события touchstart, touchend и выполняла preventDefault от контейнера элемента, содержащего элемент, от которого я слушал события "tap". В IE9 я не смог сэмулировать ошибку, в большинстве случаев срабатывает, а когда перестаёт срабатывать не понятно с чем это связано. Может всё дело в тормозном движке в этой версии IE. Вообщем я извиняюсь за тикет, не до разобрался.