$ (document) .click() некорректно работает на iPhone

Время чтения: 1 минута
0 267

Сегодня столкнулся с такой проблемой, как с отсутствием события клика на IPhone на обычном DIV элементе.

Как можно проверить сам клик? К примеру, повесить событие на весь документ body и отловить название тега, по которому кликаем:

$(document).ready(function () {
  $('body').click(function (e) {
    alert(e.target.nodeName);
  });
});

А теперь, внимание, проблема: при клике в любом месте, в любом браузере на компьютере, даже в Safari - это сработает, НО только не на iPhone!

Где может проявится эта проблема? К примеру, если вы делайте выезжающее меню и вам необходимо закрыть его при клике на задний фон.

Зная JavaScript и библиотеку jQuery, можно решить проблему с помощью события touchstart, но и это не верное решение.

Оказывается все можно сделать гораздо проще, используя CSS, добавив к элементу cursor: pointer;:

.click-div{
    cursor: pointer;
}

« Все статьи

Комментарии 0 комментариев
Только авторизованные пользователи могут оставлять комментарии. Войдите, пожалуйста.
Что еще посмотреть?