首页 文章

点击事件仅在手指不滑动时才有效

提问于
浏览
3

我在IOS上使用带有手机间隙的jquery移动设备,我注意到只有当您点按屏幕而不向左或向右移动手指时才会触发点击事件 . 下面是我的绑定代码 .

$(".pic-cont").on("tap",{count: "not needed"},function(event){
        console.log("Clicked");
        ....

我正在制作游戏,用户将快速点击屏幕上的内容,我注意到当你快速点击手指时可能会滑动并且不会注册点击事件 . 是否有任何其他可以使用的事件(如触地事件),因此当用户手指点击屏幕时,无论手指向左或向上移动还是按住,都会立即注册事件 .

谢谢!

3 回答

  • 1

    在jQuery Mobile的情况下,几乎没有解决方案,但一个可以适用于您的情况 .

    解决方案1 - jQuery解决方案

    您应该使用touchstart事件而不是点击事件 . 它像点击一样工作,同时它是在屏幕滑动期间触发的第一个事件 .

    这是一个代码示例:

    $(document).on('pagebeforeshow', '#index', function(){       
        $(document).on('touchstart', '#index', function(){       
            alert('touchstart');
        });
    });
    

    我给你一个有用的例子:http://jsfiddle.net/Gajotres/vDqdD/

    解决方案2 - jQuery Mobile解决方案

    虽然touchstart是一个很好的解决方案,但它不适用于使用较旧的jQuery Mobile版本(1.1及更低版本)的旧Android设备 .

    因此,如果您需要创建防弹版本,则应使用vmousedown事件而不是touchstart .

    $(document).on('pagebeforeshow', '#index', function(){       
        $(document).on('vmousedown', '#index', function(){       
            alert('vmousedown');
        });
    });
    

    这是一个有效的jsFiddle示例:http://jsfiddle.net/Gajotres/vDqdD/4/

  • 3

    对于游戏,最好使用原生触摸事件:https://developer.mozilla.org/en-US/docs/DOM/Touch_events . 使用它们可以比使用"tap"等便利事件更严格地控制 .

  • 2

    您可能想要尝试这个Quo JS轻量级JavaScript库以获得准确的事件 . 我从SO那里找到了很少的建议 . 它的工作非常精确且非常准确 .

相关问题