Способ назначения событий click для iPad

Пятница, 08 Ноябрь 2013

 

Разработав сайт для клиента, с использованием слайера ссылок с картинками на jQuery, оказалось что у клиента на iPad и iPhone не работает слайдер, т.е клики по ссылкам вперед назад а также по самим ссылкам картинкам ничего не дают.

 

Как выяснилось все дело в том, что если у ссылки (a href="#") присутствует псевдокласс hover в css (a:hover), то на IPad при первом клике по этой ссылке срабатывает событие hover, но если быстро сделать еще и второй - происходит обычный переход по ссылке.

 

Решение на jQuery состоит в том что сначало нужно определить есть ли в User Agent iPad, и если да то событие будет touchstart, а не click как для стандартных браузеров.

 

 
var ua = navigator.userAgent,
event = (ua.match(/iPad/i)) ? "touchstart" : "click"; //Если имеем дело с iPad - touchstart, иначе - событие click;
 

 

Ниже приведен пример кода который будет работать как в обычном браузере при клике мышкой, так и в iPad:

 

 
$("#theElement").bind(event, function() { // jquery код события при клике
//jquery code
}
 

 

PS. Читайте последние записи RSS Подписка на RSS

 

Добавить комментарий