Как остановить распространение событий в Hammer.js (2.0.2)? Техника, используемая в соответствующем тесте (https://github.com/hammerjs/hammer.js/blob/master/tests/unit/test_propagation.js), не применяется ко всем типам событий. Если вы замените событие «нажмите» нажатием «один», тест завершится с ошибкой.Как остановить распространение события hammer.js
ответ
В своем родительском элементе проверьте, что такое event.target. Если он не является родительским элементом и установлен на дочерний элемент, то игнорировать событие.
например: if (event.target! = Parent) { возвращение; }
Для того, чтобы решить эту проблему, я написал небольшую подмешать продлить hammer.js с распространением событий:
Знаете ли вы, что было причиной перезаписи hammer.js таким образом? почему события не ограничены DOM? – gipouf
Производительность может быть лучше, если у вас только JS и нет DOM. И его проще построить, не считая с DOM. Это также не очень распространенный случай использования событий, и это своего рода анти-шаблон в пользу делегирования делегирования, когда один родитель обрабатывает все события. Но иногда это действительно помогает вашей жизни. Это может быть необходимо при наличии автономных компонентов. –
В вашем родительском случае дом привязывать щелчка, и stopPropagation так ли
FWIW техника в модульном тесте отлично работает для событий салфетки, так что спасибо @nlyk за привлечение моего внимания! Hammer.js, похоже, позор, что новая блестящая версия библиотеки усложняет это, чем раньше. –
На странице советов и трюков http://hammerjs.github.io/tips/ описано, что вам нужно установить опцию {domEvents: true}, чтобы включить stopPropagation. У меня пока нет этой работы –