Использование fancybox на загруженной странице AJAX

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

Вопрос простой, и чтобы помочь вам, я запаковал .zip файлы, которые вы можете протестировать.

http://www.ivanhalen.com/fancyproblem.zip

  1. У меня есть главная страница с некоторыми ссылками (index.php)
  2. При нажатии на них загружается фрагмент кода через AJAX (page.php)
  3. В сниппете есть одна или несколько ссылок, при нажатии на них должен открываться iframe fancybox (fb.php)

Что ж, fancybox просто не будет работать, за исключением первой открытой ссылки. Затем я продолжаю получать ошибку «t is notdefined» в Firefox, которая никуда не указывает. Я пробовал действительно все, что мог себе представить, но все равно не повезло...

Не могли ли вы помочь мне, пожалуйста? Большое спасибо


person Ivan    schedule 02.11.2010    source источник


Ответы (1)


Не размещайте скрипт для fancybox() ваших ссылок в содержании ответа ajax. Вместо этого вы хотите переместить вызов fancybox() в обратный вызов complete() функции загрузки, например:

$(document).ready(function(){
    $('#links a').live('click', function(e){
        e.preventDefault();
        var url = $(this).attr('href');
        $('#content').load(url, function(data, stat, req){
            $("a#popup").fancybox();
        });
    })
});
person rossipedia    schedule 02.11.2010
comment
Хорошо, хорошо, я переместил файл fancybox.js со страницы, вызываемой AJAX (page.php), в основной скрипт (index.php): теперь он работает!! Спасибо!!! - person Ivan; 02.11.2010
comment
интересное примечание: перемещение функции за пределы вызова, но все еще в функции щелчка выше, также не сработает - она ​​должна быть в функции успеха вызова. - person Innate; 20.03.2012