Не срабатывает событие click на iPad и iPhone (iOS)

23813 просмотров
Автор: Николай Ковалёв

При разработке сайтов с использованием jQuery, на устройствах с операционной системой iOS (в частности браузер Safari), может возникнуть проблема с обработкой события click, из-за чего владельцам iPhone и iPad будет не доступна часть функционала сайта.

Решить эту проблему можно несколькими способами

Способ 1. Вместо события click, на этих устройствах нужно обрабатывать событие touchstart.

Вот пример реализации этого способа:

var iOS = navigator.userAgent.match(/iPhone|iPad|iPod/i);
var event = "click";

if(iOS != null)
    event = "touchstart";

$(function() {
    $(document).on(event, ".element_class", function(e) {
    	//действия
    });
});

Минусом является то, что может не работать прокрутка страницы.

Способ 2. Чтобы срабатывало событие click на iOS, нужно чтобы у элементов присутствовал атрибут onclick. Значение этого атрибута может быть пустым.

<div class="element_class" onclick=""></div>

Способ 3. Самый простой вариант, добавить для элемента CSS-свойство cursor со значением pointer.

.element_class{
    cursor: pointer;
}
4.69 13 голосов
Валюта цен: BYN RUB