JQuery нажмите запасной вариант без зависания Ipad - PullRequest
2 голосов
/ 28 апреля 2011

Я хочу, чтобы функция вызывалась, когда вы наводите курсор на что-либо (и не париваете).Однако я также хочу, чтобы он был доступен для пользователей ipad (и т. Д.), У которых нет парения.Поэтому я хочу, чтобы был возможен откат клика.Как мне этого добиться?Обратите внимание, что я не хочу, чтобы люди могли нажимать на него, если наведение работает.Это то, что у меня так далеко, что довольно близко:

var collapsed=1, noHover=false;
$('#deeper').hover(function() {deeper();});
$('#deeper').click(function() {if (collapsed || noHover) {
  deeper();
  noHover=true;
}});
function deeper() {
  if (collapsed == 1) {
    collapsed = 0;
    $(this).children().show();
  } else {
    collapsed = 1;
    $(this).children().hide();
  }
}

Однако это не удается - если при загрузке страницы у вас указатель мыши находится над #deeper и вы щелкаете перед перемещением мыши (движение мыши)кажется, требуется для .hover для запуска), noHover становится истинным, делая возможным щелчки, а также зависания.

Должен ли быть лучший способ?Спасибо!

Ответы [ 2 ]

2 голосов
/ 28 апреля 2011

Возможно, вы захотите взглянуть на плагин jQuery Touchable / Hoverable , который объединяет события касания и мыши (touchable) и события зависания (hoverable) на разных платформах, таких как настольные компьютеры и мобильные устройства с сенсорными экранами.*

2 голосов
/ 28 апреля 2011

iPad вызывает сенсорные события при касании. Один из вариантов - использовать их вместо щелчка и не распространять на событие щелчка (или использовать глобальную переменную для отслеживания состояния щелчка / касания)

сенсорный работает так же, как щелчок. Смотрите эту статью для более: http://htmlpad.wordpress.com/2010/02/12/tracking-touch-events-on-the-ipad/

...