Mobile Safari - event.target in touch event



当有人在我的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
  }
}

但是CCD_ 2总是CCD_ 3。但我从来没有接触过真正的元素,例如锚标签或div.

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

您可以尝试"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插件。

最新更新