js, um auch Touch-Gesten zu unterstützen. Ich mache mir Sorgen um Standardaktionen. Wenn ich event.preventDefault
oder event.gesture.preventDefault()
einstelle oder sogar den Parameter {prevent_defaults: true }
auf den Hammer trage, wird nur eine Standardaktion auf den Anker ausgelöst. Wie kann ich das verhindern und/oder was mache ich falsch ?!hammer.js und preventDefault();
Code-Schnipsel;
function initializeNavigation() {
$("nav").hammer({prevent_defaults: true }).on("tap", "a", function(event) {
event.preventDefault();
event.gesture.preventDefault();
var target = $(this.hash);
scrollToTarget(target, 1200);
// if there is an open detailItem then close it.
if (detailItemOpen) {
$("div." + detailItemOpen).slideUp();
}
})
if (Modernizr.mq('only screen and (max-width: 767px)')) {
initializeMobileMenuAndSetButton();
}
}
Obwohl nicht ganz ein Duplikat ersetzen werden, kann diese Antwort helfen: http://stackoverflow.com/questions/10714868/how-to-disable-the-default-verhalten-von-an-anker-in-jquery-mobile-ios – CodingIntrigue
Ich bekomme Ihre Antwort nicht, weil es auch in Firefox passiert. Es hat etwas mit Hammer.js und den Ereignissen zu tun. Wenn ich nur die Click-Events benutzt habe, hat alles auf Geräten mit einer Maus funktioniert. – myradon
Wahre, lange Diskussion darüber hier. Es geht um stopPropagation(), gilt aber auch für preventDefault(): https://github.com/EightMedia/hammer.js/issues/237 – CodingIntrigue