в обход событий наведения мыши для iOS - PullRequest
2 голосов
/ 01 ноября 2010

Наш веб-сайт использует библиотеку overLIB для отображения «дополнительной информации» о кликабельных ссылках при наведении курсора. В результате на устройствах iOS первый щелчок приведет к появлению текста при наведении курсора, а второй - к активации ссылки.

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

Ответы [ 2 ]

2 голосов
/ 16 мая 2012

Если вам нужно простое решение, вы можете использовать что-то наподобие Modernizr, как описано здесь: Какой лучший способ обнаружить устройство с «сенсорным экраном» с помощью JavaScript? . Затем вы можете привязать события overLIB к классам без сенсорного экрана и т. Д. Таким образом, вы можете обращаться ко всем пользователям сенсорных устройств, а не только к пользователям iOS. Конечно, если вам нужны только пользователи iOS, вы всегда можете использовать UA sniff (http://www.quirksmode.org/js/detect.html), хотя это не рекомендуется.

Тем не менее, у вас по-прежнему возникает проблема с загрузкой сценария (ов) overLIB для пользователей, которым он не нужен. Я думаю, что лучший способ избежать этого зависит от остальной части вашего стека.

Еще одна вещь, о которой стоит подумать, это назначение подсказок при наведении. Если они полезны на вашем настольном сайте для того, чтобы помочь пользователям узнать о том, куда они идут, не вкладывая средства в один клик, почему они не полезны на вашем сайте с сенсорным устройством? Я знаю, что зависание на сенсорных устройствах неудобно, но я думаю, что они достаточно распространены, поскольку альтернативы пока нет. Держу пари, что пользователи сенсорного устройства понимают ход. Единственный пример, который приходит на ум, - Seamless.com - когда вы выбираете пункт меню в ресторане, вы получаете «парящее» описание, а затем для его выбора требуется второй щелчок.


Я понимаю, что это старый вопрос - отвечать на вопросы Googlers. :)

0 голосов
/ 12 января 2013

Другое решение заключается в использовании .mousemove() вместо .mouseover().

iOS игнорирует событие .mousemove() и вызывает щелчок при первом касании.

...