2012-07-02 13 views
8

問題は、垂直スクロールが必要なときにswipeleft/swiperightイベントが発生するという問題です。jqueryモバイルの垂直スクロール中にswipeleft/swiperightがトリガーされました

jquery mobile 1.1.0バージョンとjquery 1.7.1を使用しています。

とコードは次のとおりです。

$(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(); 
}); 

私はページをscorllしたいときなぜイベントトリガーをスワイプ??

この問題は、いずれかがこの問題のために私を助けることができます...サムスンギャラクシーアンドロイド2.3.5に

を発生しているのですか?

事前に感謝しますが...

答えて

12

あなたは、スワイプイベントがスワイプを聴く前に、次のオブジェクト

$.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. 
}); 

あなたのコードの場所にそれをの値を変更するどのように機能するかを制御することができます。たとえば、verticalDistanceThresholdを15に、durationThresholdを500に変更して、偽陽性を減らすのに役立ちます。

一方、あなたのコードでは、ボタン上でクリックイベントをトリガーしていますが、それはうまくいく方法で、次の/前のアクションを実行するメソッドを直接呼び出すことです。

幸運を祈る!

+3

'horizo​​ntalDistanceThreshold'を' Math.min($(document).width()/ 2、160)に設定すると '私のために働いていました。 [ここ]から(http://c-sharp-snippets.blogspot.com.ar/2011/12/jquery-mobile-swiperight-too-sensitive.html) –

+0

スワイピングはちょっと難しいです私が上下にスクロールするときに斜めに動くので、スワイプではなくスクロールするだけです。タッチスタートとタッチストップを測定できると思います。 –

関連する問題