0

私はjqMobiを使用しています(jQuery Mobileではありません)。メニューで動作するようにしようとしswipelistenerています。基本的には、メニューを「スワイプ」して、水平方向のスワイプ動作で開いたり閉じたりしたいだけです。これが私のjsです:

$.ui.ready(function () {
    . . . . .
    $(window).swipeListener({
        vthreshold: 50,
        hthreshold: 70,
        callBack: function (dir) {                
            if (dir.right) {
                $.ui.toggleSideMenu(true);
            }
            if (dir.left) {
                $.ui.toggleSideMenu(false);
            }

        }
    });
 });

これは、ここでこの赤い部分を「スワイプ」する場合を除いて、うまく機能します->

ここに画像の説明を入力してください

他の場所をスワイプすると、正常に機能します。私もセレクターを使おうとしましたがdocument、それもうまくいきませんでした。swipelistenerとにも別のものを追加しようとし#menuまし#menu_scrollerた。

デバイスがIOS6であり、「デバッグコンソール」が削除されているため、これをデバッグするのは非常に困難です。そのため、大量のコンソールログを追加することはできません。(私はMacを持っていないので、開発者メニューを接続できません)

私の理論では、メニュー項目にリスナーがいるので、これが私の邪魔をしているということontouchstartです。助言がありますか?ontouchendswipelistener

4

1 に答える 1

1

swipeListener は非推奨です。代わりに、バインドできる jqUi [swipe,swipeLeft,swipeRight,swipeUp,swipeDown] によってディスパッチされるイベントがあります。ontouchstart/ontouchend 用に持っているリスナーは、イベントの伝播を停止している可能性があります (それらはカスタム リスナーですか?)

$.ui.ready(function(){
    $(document).bind("swipeLeft",function(){
         $.ui.toggleSideMenu(false);
    });
    $(document).bind("swipeRight",function(){
         $.ui.toggleSideMenu(true);
    });
}
于 2013-03-08T18:33:59.110 に答える