移动Safari - 触摸事件中的event.target

时间:2012-03-06 08:35:37

标签: javascript javascript-events mobile-safari

我希望在我的iPad屏幕上触摸某个东西时有目标。 但不幸的是,它总是返回currentTarget,而不是目标。

document.addEventListener('touchstart', onDocumentTouchStart, false);

function onDocumentTouchStart(event) {

  if (event.target.tagName.toLowerCase() == "div" || event.target.tagName.toLowerCase() == "canvas") {
      // do someting
  }
  else
  {
     // do something else
  }

}

event.target.tagName总是"HTML"。但绝不是我触及的真实元素,例如锚标记或div。

如何获得我触及的真实元素?

非常感谢。

文森特

1 个答案:

答案 0 :(得分:4)

您可以尝试“event.touches”数组,当前每个手指都有一个条目,其中“target”值引用触摸的DOM元素。

function onDocumentTouchStart(event) {
    if (event.touches[0] && event.touches[0].target.tagName.toLowerCase() == "div") {
        // do someting
    }
}

但是,我应该注意到我无法复制原始问题;当我尝试它时,event.target按照预期将触摸的div称为。您还可以检查可能干扰事件冒泡的CSS和/或JS插件。