0

查看mozilla对 TouchEvent 的引用,我看不到明显的方法来获取导致事件的(一个)Touch 对象。也许这是因为我误解了这些东西是如何工作的。如果以下情况属实,那对我来说很有意义:

  • 如果发生多个相同类型的触摸事件,则事件处理程序仅调用一次,程序员应使用 TouchEvent.changedTouches 处理多个事件
  • 不同类型的触摸事件将始终分别调用两个不同的处理程序(例如,如果触摸开始与触摸结束同时发生)

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

4

2 回答 2

1

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

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

于 2013-08-23T17:22:23.430 回答
0

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

于 2013-08-23T18:35:03.527 回答