0

xui-swipe.jsPhonegapアプリケーションで左右のスワイプジェスチャを検出するために使用しています。

これは、AndroidエミュレーターとiPhoneシミュレーターの両方で正常に機能しています。しかし、このアプリケーションを実際のデバイス(Samsung Glaxy S3)にインストールした場合、スワイプジェスチャはイベントを1回だけ検出し、その後は何も検出されません。左か右か。

xui.jsジェスチャを検出するために使用されるコードのチャンクは次のとおりです(とxui-swipe.jsが含まれていることに注意してください)。

<script type="application/javascript">
    function init ()
    {
        x$("#wrapper").swipe(function(e, data){
            var offset = parseInt(sessionStorage.getItem('offset'));
            switch(data.direction) {
                case 'right':
                    if (offset>0) {
                        sessionStorage.setItem('offset', offset-1);
                        document.location = "file.html";
                    }
                    //alert('right');
                    break;

                case 'left':
                    if (offset<10) {
                        sessionStorage.setItem('offset', offset+1);
                        document.location = "file.html";
                    }else {
                        document.location = "file-end.html";
                    }
                    //alert('left');
                    break;
            }
        }, {
            swipeCapture: true,
            longTapCapture: true,
            doubleTapCapture: true,
            simpleTapCapture: false
        });
    }

    var _timer=setInterval(function(){
        if(/loaded|complete/.test(document.readyState)){
            clearInterval(_timer)
            init() // call target function
        }
    }, 10);
</script>

どんな助けでも大歓迎です。

4

1 に答える 1

0

私はあなたがcaseステートメントが間違っていると思います:

switch (data.type){
    case ('direction'):
      if (data.direction == 'left') {
        i--;
      } else {
        i++;
     }

最初にケースの「方向」を確認してから、左か右かを確認する必要があります。

于 2012-11-22T19:28:34.007 に答える