Wie Stoppen der Ereignisausbreitung in Hammer.js (2.0.2)? Die im relevanten Test verwendete Technik (https://github.com/hammerjs/hammer.js/blob/master/tests/unit/test_propagation.js) gilt nicht für alle Arten von Ereignissen. Wenn Sie das Ereignis "Tippen" durch "Drücken" ersetzen, schlägt der Test fehl.Wie hammer.js Ereignispropagierung zu stoppen
Antwort
Überprüfen Sie in Ihrem übergeordneten Element, was das event.target ist. Wenn es nicht das übergeordnete Element ist und auf das untergeordnete Element festgelegt ist, ignorieren Sie das Ereignis.
zB: if (event.target! = Übergeordnet) { return; }
Um dieses Problem zu lösen, schrieb ich eine kleine mixin hammer.js mit Ereignispropagierung zu erweitern:
Weißt du, was die Motivation war, hammer.js so umzuschreiben? Warum sind die Ereignisse nicht an das DOM gebunden? – gipouf
Leistung kann besser sein, wenn Sie nur JS und kein DOM haben. Und es ist einfacher zu bauen, ohne mit dem DOM zu rechnen. Es ist auch kein sehr gebräuchlicher Anwendungsfall, um Ereignisweiterleitung zu benötigen, und es ist eine Art Anti-Muster zugunsten der Ereignisdelegierung, bei der ein einziges Elternteil alle Ereignisse behandelt. Aber manchmal macht es dein Leben leichter. Dies kann notwendig sein, wenn unabhängige Komponenten vorhanden sind. –
In Ihrer Eltern dom binden Click-Ereignis, und stopPropagation es
- 1. iOS Ereignispropagierung in UIViewController
- 2. Java Ereignispropagierung gestoppt
- 3. Jquery Click-Ereignispropagierung
- 4. Hammer.js Ereignispriorität
- 5. Wie stoppePropagation() w/Hammer.js 2.0?
- 6. hammer.js und preventDefault();
- 7. Pinch-Zoom mit Hammer.js
- 8. Ereignisdelegierung mit "Hammer.js"
- 9. Fullpage Karussell mit hammer.js
- 10. Hammer.js Swipe funktioniert nicht
- 11. Wie zu stoppen NSTimer.scheduledTimerWithTimeInterval
- 12. Wie Stoff zu stoppen
- 13. Wie Grunt zu stoppen
- 14. Wie Sudo zu stoppen Edelsteine zu stoppen. Die ultimative Lösung
- 15. jQuery funktioniert nicht mit Hammer.js
- 16. Multi-Touch-Schwenken mit Hammer.js
- 17. Wie zu stoppen/ungültig NSTimer
- 18. Wie zu stoppen Docker ziehen
- 19. Wie Handler Runnable zu stoppen?
- 20. wie gSOAP-Operationen zu stoppen
- 21. android, wie gps zu stoppen
- 22. Wie zu stoppen/zu schließen SignalR Service
- 23. Delegieren von Hammer.js-Ereignissen mit jQuery
- 24. Wie'enumerateChildNodesWithName ("// *") Enumeration zu stoppen?
- 25. Wie deaktiviere ich vertikales Scrollen in iOS mit Hammer.js?
- 26. Wie kann ich TProgressBar stoppen zu verzögern?
- 27. Javascript wie Intervallzeit einstellen zu stoppen
- 28. Wie Flash von unstyled Inhalt zu stoppen
- 29. Wie VBA-Makro automatisch zu stoppen?
- 30. Wie Git Zweig in IntelliJ zu stoppen?
FWIW Die Technik im Komponententest funktioniert gut für Swipe-Events, also danke @nlyk, dass du mich darauf aufmerksam gemacht hast! Hammer.js Leute, es scheint eine Schande, dass die neue, glänzende Version der Bibliothek das schwieriger macht als zuvor. –
Die Seite Tipps und Tricks http://hammerjs.github.io/tips/ beschreibt, dass Sie die Option {domEvents: true} festlegen müssen, um stopPropagation zu aktivieren. Ich habe das bisher nicht funktioniert –