如何从TouchEvent获取Touch对象

时间:2013-08-23 16:59:57

标签: javascript html5 dom touch

查看TouchEvent的mozilla's reference,我看不到明显的方法来获取导致该事件的(一个)Touch对象。也许这是因为我误解了这些事情的运作方式。如果以下情况属实,那对我来说是有道理的:

  • 如果发生同一类型的多个触摸事件,则只调用一次事件处理程序,并且程序员应使用TouchEvent.changedTouches处理多个事件
  • 不同类型的触摸事件将始终分别调用两个不同的处理程序(例如,如果触摸启动与touchend同时发生)

我的猜测是否正确?如果是这样,那么我的主要问题的答案就是循环遍历changedTouches并单独处理每个(除非你有一些特殊的逻辑)。

2 个答案:

答案 0 :(得分:1)

使用changedTouches列表触发'touchstart'事件,可以是1或多个。你的猜测是正确的,你必须循环遍历changedTouches并单独处理它们。看看他们提供示例的文档的另一部分:

https://developer.mozilla.org/en-US/docs/Web/Guide/DOM/Events/Touch_events#Tracking_new_touches

答案 1 :(得分:0)

如果你不以某种复杂的方式使用触摸事件,你可以试试http://labs.ft.com/2011/08/fastclick-native-like-tapping-for-touch-apps/这个FastClick库,当我试图从触摸元素中获取id时,它帮助了我,它将所有触摸事件转换为单击