Сегодня столкнулся с такой проблемой, как с отсутствием события клика на 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;
}