Swipelistener没有在菜单上工作

时间:2013-03-08 16:20:09

标签: swipe jqmobi

我正在使用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);
            }

        }
    });
 });

除非我在这里用红色部分“滑动”,否则效果很好 - >

enter image description here

如果我在其他地方滑动,它可以正常工作。我也试过使用document选择器,这也没用。我尝试将另外swipelistener添加到#menu#menu_scroller

这对我来说非常难以调试,因为我的设备是IOS6并且“调试控制台”已被删除,所以我不能只添加大量的控制台日志记录。 (我没有Mac,所以我无法连接开发人员菜单)

我的理论是,由于菜单项上有ontouchstartontouchend个侦听器,这会干扰我的swipelistener。有什么建议吗?

1 个答案:

答案 0 :(得分: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);
    });
}