js także do obsługi gestów dotykowych. Pakuję głowę, by zapobiec domyślnym działaniom. kiedy ustawiam event.preventDefault
lub event.gesture.preventDefault()
lub nawet zastosuję parametr {prevent_defaults: true }
na młocie, to po prostu wywoła domyślną akcję na kotwicy. Jak mogę temu zapobiec i/lub co robię źle ?!hammer.js i preventDefault();
Fragment kodu;
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();
}
}
Chociaż nie całkiem duplikatu, to odpowiedź może pomóc: http://stackoverflow.com/questions/10714868/how-to-disable-default-of-an-anchor-in-jquery-mobile-ios – CodingIntrigue
Nie otrzymuję odpowiedzi, ponieważ dzieje się to również w przeglądarce Firefox. Ma to coś wspólnego z Hammer.js i wydarzeniami. Kiedy używałem tylko zdarzeń kliknięcia, wszystko działało poprawnie na urządzeniach za pomocą myszy. – myradon
Prawdziwa, długa dyskusja na ten temat tutaj. Chodzi o stopPropagation(), ale dotyczy także preventDefault(): https://github.com/EightMedia/hammer.js/issues/237 – CodingIntrigue