3

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

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

我正在制作游戏,用户会快速点击屏幕上的东西,我注意到当你快速点击时,你的手指可能会滑动而不注册点击事件。是否有任何其他事件我可以使用(如触地事件),所以当用户的手指点击屏幕时,无论他们是否将手指左右移动或按住,都会立即注册该事件。

谢谢!

4

3 回答 3

3

在 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/

于 2013-03-17T16:59:58.353 回答
2

对于游戏,最好使用原生触摸事件:https ://developer.mozilla.org/en-US/docs/DOM/Touch_events 。使用它们可以让您拥有比使用“点击”等便利事件更严格的控制。

于 2013-03-16T19:37:23.937 回答
1

您可能想尝试这个Quo JS轻量级 JavaScript 库来获取准确的事件。我在 SO 的一些建议中发现了这一点。它工作得非常好而且非常准确。

于 2013-03-17T11:09:22.897 回答