Zrobiłem to za pomocą event.gesture.preventDefault:
$('#horizontalCarousel').hammer({ drag_lock_to_axis: true }).on("swipe drag", function(event) {
event.gesture.preventDefault();
if(event.type == "swipe"){
swipeAction(event);
} else {
dragAction(event);
}
});
Oto podane documentation
[EDIT]
Moja odpowiedź była tylko po to, aby poinformować cię, że używasz niewłaściwego zdarzenia.preventDefault(). W rzeczywistości użyłeś także niewłaściwej składni do sprawdzenia kierunku zdarzenia. Powinieneś być w stanie zarządzać go w ten sposób, choć nie testowałem go:
$(document).hammer({ drag_lock_to_axis: true }).on("swipe drag", function(event) {
if (event.gesture.direction == Hammer.DIRECTION_UP || event.gesture.direction == Hammer.DIRECTION_DOWN){
event.gesture.preventDefault();
}
});
2 rzeczy są zmieniane: event.gesture.direction i event.gesture.preventDefault(); Event.direction był sposobem, aby zrobić to na starszych wersjach młota js.
Uwaga: jeśli chcesz zrobić coś za pomocą zdarzenia machnięcia, na przykład: przeskocz większą ilość w poziomie podczas przesuwania, możesz połączyć moje odpowiedzi.
Czy kiedykolwiek próbowałeś zaktualizowanej odpowiedzi? –