Мобильное Сафари - event.target in touch event - PullRequest
1 голос
/ 06 марта 2012

Я бы хотел иметь цель, когда что-то касалось экрана моего 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 Ответ

4 голосов
/ 06 марта 2012

Вы можете попробовать массив "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, которые могут мешать возникновению событий.

...