2012-07-02 15 views
8

El problema es que el evento swipeer/swiperight se activa cuando quiero desplazamiento vertical.swipeleft/swiperight desencadenado durante desplazamiento vertical en jquery mobile

estamos usando jquery mobile 1.1.0 version y jquery 1.7.1.

y el código es:

$(document).delegate('#quizResumePage', 'swipeleft swiperight', function (event) { 
    event.stopImmediatePropagation(); 
    if (event.type == 'swipeleft') { 
     $('#btnnext').trigger('click'); 
    } else if (event.type == 'swiperight') { 
     $('#btnprevious').trigger('click'); 
    } 
    event.preventDefault(); 
}); 

Entonces, ¿por golpe evento de disparo cuando quiero scorll la página ??

Este problema se produce en la galaxia de Samsung Android 2.3.5 ...

¿Puede cualquiera que me ayude para este problema?

Gracias de antemano ...

Respuesta

12

Puede controlar cómo el evento golpe trabaja cambiando los valores de los siguientes objetos

$.extend($.event.special.swipe,{ 
    scrollSupressionThreshold: 10, // More than this horizontal displacement, and we will suppress scrolling. 
    durationThreshold: 1000, // More time than this, and it isn't a swipe. 
    horizontalDistanceThreshold: 30, // Swipe horizontal displacement must be more than this. 
    verticalDistanceThreshold: 75, // Swipe vertical displacement must be less than this. 
}); 

lugar en el código antes de escuchar a los golpes. Cambie, por ejemplo, el Umbral de distancia vertical a 15 y el Umbral de duración a 500, lo que ayudará a reducir el falso positivo.

Por otro lado, en su código está activando el evento click en sus botones, mientras que eso funciona, un mejor enfoque sería llamar directamente al método que ejecuta las acciones siguientes/previas.

¡Buena suerte!

+3

Estableciendo 'horizontalDistanceThreshold' a' Math.min ($ (documento) .width()/2, 160) 'funcionó para mí. De [aquí] (http://c-sharp-snippets.blogspot.com.ar/2011/12/jquery-mobile-swiperight-too-sensitive.html) –

+0

Deslizar es un poco difícil porque he descubierto que clasifico de mover diagonalmente mientras me desplazo hacia arriba o hacia abajo, así que solo quiero que se desplace, no deslice. Supongo que podría medir touchstart y touchstop. –

Cuestiones relacionadas