【问题标题】:Mobile Safari - event.target in touch event移动 Safari - 触摸事件中的 event.target
【发布时间】:2020-10-11 19:26:27
【问题描述】:

我想在我的 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。

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

【问题讨论】:

    标签: javascript dom-events mobile-safari


    【解决方案1】:

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

    【讨论】:

    • 你可以访问这个link作为TouchEvent的参考,这个link作为Touch的参考。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 2015-11-06
    • 2011-03-29
    • 2011-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多