2013-06-10 2 views
1

У меня есть файл index.html, который загружает содержимое с помощью функции jQuery's load(), этот index.html включает в себя все JS-файлы, следующее.Запуск Fancybox после загрузки jQuery

Вот код:

$(document).ready(function(){ 
    function showNewContent() { 
     $('#wrapper').fadeIn('normal',hideLoader); 
    } 
    function hideLoader() { 
     $('#load').fadeOut('normal'); 
    } 
    $('#menu li.load a').click(function() { 
     // Change Content 
     var toLoad = $(this).attr('href')+' #all_content'; 
     $('#wrapper').fadeOut('fast',loadContent); 
     $('#load').remove(); 
     $('body').append('<div id="load"></div>'); 
     $('#load').fadeIn(0); 
     window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5); 
     function loadContent() { 
      $('#wrapper').load(toLoad,'',showNewContent); 
     } 
    }); 

    ...some more code... 

    $('.fancy').click(function() { 
     $.fancybox.open([ 
      { 
       href : 'img/img1.jpg' 
      }, { 
       href : 'img/img2.jpg' 
      }, { 
       href : 'img/img3.jpg' 
      } 
     ], { 
      helpers : { 
       thumbs : { 
        width: 75, 
        height: 50 
       } 
      } 
     }); 
    }); 
}); 

Я загрузки содержимого из другого файла (News.html) в файл index.html. В этом файле news.html есть ссылка

<a class="fancy" href="javascript:;"><img src='img/img1.jpg' /></a> 

но fancyboy не работает. Как я могу заставить его работать?

Я не нашел для себя решения для меня до сих пор. Если у кого-то есть ответ или ссылка, где я могу найти что-то полезное, это было бы здорово. Заранее спасибо!

+0

Что означает «не работает»? вы получаете сообщение об ошибке? Вы включаете fancybox js внутри index.html? – Alex

+0

Нет, у меня нет ошибки, наложение fancybox просто не загружается. Кажется, что tymeJV ниже дал хороший совет, но он до сих пор не загружается до конца ... –

ответ

0

Вам необходимо делегирование событий, так как этот якорь загружается в динамически связать событие щелчка к элементу, который уже существует:

$(document).on('click', '.fancy', function() { 
    //do stuff 
}); 
+0

Спасибо за ваш быстрый ответ. я включил этот новый код: '$ (документ) .он ('щелчок', '.fancy', функция() {$ .fancybox.open ([ \t \t { \t \t \t HREF:«IMG/img1.jpg» \t \t}, { \t \t \t HREF: 'IMG/img2.jpg' \t \t}, { \t \t \t HREF: 'IMG/img3.jpg' \t \t} \t], { \t \t помощники: { \t \t \t пальцы: { \t \t \t \t ширина: 75, \t \t \t \t высота: 50 \t \t \t} \t \t} \t}); }); ' , но когда я нажимаю на ссылку .fancy, сайт мерцает на миллисекунду, как если бы fancybox загружался, но затем он снова исчезает. –

+0

Это решило проблему? – tymeJV

+0

Как я описал это, кажется, что-то что-то делает, но в конце fancybox не загружается, просто короткий флемист, как будто он загружает fancybox. –

0

Лучше использовать Init-скрипт, который вы называете после загрузки содержимого, является лучше, чем использование document.ready(). Когда вызывается document.ready(), содержимое отсутствует, оно будет загружено потом, если это то, о чем вы упомянули.