jQuery/JavaScript, iPad/iPhone (iOS/Safari) и событие click
При разработке одного веб-приложения с использованием jQuery заказчик заметил, что часть функционала не работает на iPad/iPhone. В частности не срабатывало событие «click».
Сперва гугл привел на хабрахабр и stackoverflow, где предлагалось одно и тоже решение — использование события «touchstart» на iPad вместо «click»:
1 2 3 4 5 6 |
var ua = navigator.userAgent, event = (ua.match(/iPad/i)) ? "touchstart" : "click"; $("#theElement").bind(event, function() { // jquery code } |
но при использовании этого решения невозможно было пользоваться прокруткой.
Спустя некоторое время удалось найти правильное и очень простое решение. Оказалось, что для нормальной работы события click на iOS элементы, не являющиеся ссылками, на которые навешивается обработчик события click, должны иметь атрибут «onClick» (его значение может быть пустым)
1 |
<span onClick="" id="theElement"></span> |
Второй вариант — добавить в css свойство cursor со значением pointer
1 2 3 |
span#theElement { cursor: pointer; } |