如果我使用以下方法捕获了来自移动设备的所有touchend事件:

$(document.body).bind('touchend', function (e) {
var touch = e.touches[0]; // doesnt work
...

我需要从e参数获取touch.screenX,touch.screenY,touch.clientX和touch.clientX。我看过的所有示例都建议e.touches将是一个集合,您可以使用e.touches[0]来获取触摸细节。在ipad上的测试中,e.touches始终未定义。我没有使用任何jquery插件。

还尝试了e.targetTouches,它也是未定义的。

有人可以帮忙吗?

最佳答案

实际上,释放的触摸将在changedTouches数组中找到,即:
e.changedTouches[0].pageX // get the end x page coordinate for a released touch
我认为这比通过originalEvent属性稍微可靠。

您可以在此处阅读有关changedTouches的更多信息:
http://www.w3.org/TR/touch-events/#changedtouches-of-a-touchevent

10-02 19:07