2013-10-27 4 views
0

Я пытаюсь реализовать простую вещь на своей странице с помощью jQuery и Fancybox, но я не могу поместить свой код в работу.Fancybox: При нажатии любой части страницы Fancybox

Мне нужно создать код, который при нажатии пользователем любой части страницы, Fancybox открывает модальный.

If you don't know what's a modal, this is a modal.

В настоящее время мой код не является следующее:

<script> 
     $(document).ready(function(){ 
      $(document).click(function(e){ 
      $.fancybox.open([{ 
       href: '/welcome', 
       title: 'Welcome to Our Website!' 
      }], 
      { 
       width: 800, 
       height: 600 
      }); 
      }); 
     }); 
</script> 

Для меня код хорошо, но когда я иду на эту страницу и нажмите на много частей страницы, ничего случается. Примечание. В консоли не отображаются сообщения об ошибках, поэтому, что я делаю неправильно?

+0

загружаем вы Сначала код JavaScript Fancybox? И страница/приветствие показывают что-то? Код, который вы опубликовали, отлично работает, см. JSFiddle здесь: http://jsfiddle.net/pZvbT/ –

+0

Да, я загрузил Fancybox первым и/приветствую, это уже существующий путь, он работает. Одна вещь, которую я заметил, заключается в следующем: когда я пытаюсь реализовать это с помощью кнопки (чтобы проверить и выяснить, есть ли проблема с Fancybox), что-то происходит, и на вкладке «Сеть» моей консоли Chrome появляется следующее сообщение: «Имя: welcome | Метод: Получить статус: (отменено) Тип: в ожидании «Я думаю, что это дает нам подсказку о проблеме. Вы знаете, что говорит эта ошибка? – Paladini

+0

попробуйте '$ (" body "). Click()' вместо 'document'. Также добавьте 'type:" iframe "' к вашим опциям API fancybox. – JFK

ответ

1

Если вы хотите FancyBox открыть, когда пользователь щелкает в любом месте вашей страницы после загрузки страницы (и, прежде чем они могут взаимодействовать с самой страницы), то попробуйте

jQuery(document).ready(function ($) { 
    // add fancybox class to body on page load 
    $("body").addClass("fancyopen"); 
    // bind click to body 
    $(".fancyopen").on("click", function() { 
     $.fancybox([{ 
      href: "/yourpage.html", 
      title: "welcome to our website" 
     }], { 
      width: 300, 
      height: 200, 
      type: "iframe", 
      afterShow: function() { 
       $(".fancybox-wrap").on("click", function (event) { 
        event.stopPropagation(); // so you can click fancybox without calling it again 
       }); 
      }, 
      afterClose: function() { 
       $(".fancyopen").unbind("click").removeClass("fancyopen"); // now you can interact with the page 
      } 
     }); // fancybox 
    }); // on 
}); // ready 

См JSFIDDLE

+0

Спасибо JFK !! Ты действительно помог мне! – Paladini

+0

@JFK, когда я нажимаю на символ закрытия всплывающего окна, в то время я хочу установить cookie .. что я могу сделать? – MageDev

+0

http://magento.stackexchange.com/questions/13054/how-to-set-cookie-when-click-on-fancybox-close – MageDev

Смежные вопросы