2013-09-09 1 views
-1

This answer было идеальным решением для навигации вокруг: hovers моей навигации по сайту, чтобы пользователям iPad не приходилось дважды сжимать ссылки.Наведение IPad/iPhone заставляет пользователя дважды щелкнуть ссылку. Но что делать с ссылками fancybox

$('a').on('click touchend', function(e) { 
    var el = $(this); 
    var link = el.attr('href'); 
    window.location = link; 
}); 

Теперь как я могу обращаться с ссылками FancyBox? Я могу передать им другой класс или все, что необходимо для получения правильного результата. Window.location не является решением (есть fancyBoxes с iframes).

Я создал две скрипки, чтобы продемонстрировать проблему, также появляется без IFRAME.

first one открывает fancybox, но the second one работает только на моем настольном компьютере, а не на iPad.

Также некоторые ссылки fancybox находятся непосредственно в навигации по странице с эффектом: hover. Здесь пользователю не нужно дважды щелкнуть, и Fancy-Iframe должен открыть.

Может ли кто-нибудь сказать мне, как решить это, пожалуйста. Большое спасибо за помощь.

ответ

1

Вы можете просто вызвать событие click на переключателе fancybox вместо window.location.

Так щипая код в ваш второй jsfiddle вы могли бы сделать:

$(document).ready(function() { 

    $('.fancybox').fancybox(); 

    $('a').on('click touchend', function (e) { 
     var fancy = this.className.indexOf('fancybox') != -1; 
     if (fancy) { 
      $(this.className).trigger("click") 
     } else { 
      // var el = $(this); 
      // var link = el.attr('href'); // simply use this.href 
      window.location = this.href; 
      return false; 
     } 
    }); 
}); 

просмотреть обновленную JSFIDDLE

ПРИМЕЧАНИЕ: вы можете иметь один и тот же вопрос, зависший FancyBox навигационные стрелки, если вы иметь галерею, в этом случае вам, возможно, придется запускать методы $.fancybox.next() и $.fancybox.prev() для iPad или вместо них использовать кнопки помощников.