hammer.js und preventDefault();

js für die Unterstützung von touch-gesten. Ich bin Absacken meinem Kopf zu verhindern, dass Standard-Aktionen. wenn ich event.preventDefault oder event.gesture.preventDefault() oder auch parameter {prevent_defaults: true } auf hammer es ist nur Auslöser Standard-Aktion, die auf den Anker. Wie kann ich das verhindern und/oder was mache ich falsch?!

Code-snippet;

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, diese Antwort kann helfen: stackoverflow.com/questions/10714868/...
  • Ich verstehe nicht deine Antwort, denn es passiert auch im Firefox. Es hat etwas zu tun mit Hammer.js und die Ereignisse. Wenn ich nur die Klick-events funktionierte alles korrekt auf Geräten mit einer Maus.
  • Stimmt, lange Diskussion darüber hier. Es ist über stopPropagation(), gilt aber preventDefault() zu: github.com/EightMedia/hammer.js/issues/237
  • Aha okay. Ich lese das Thema. Also das Tippen nicht yhe gleiche wie ein Klick-Ereignis. Das ist, warum immer noch Standard-Verhalten, klicken Sie auf den Anker, noch ausgelöst wird. Könnte ich die Lösung entschieden. Ich Binde eine zweite on-Methode .on("click", funtion(event) { event.preventDefault()}
  • Deine Letzte Bemerkung sollte die akzeptierte Antwort myradon 😉
InformationsquelleAutor myradon | 2013-08-14
Schreibe einen Kommentar