2012-05-30 2 views
0

мой JQuery кодобратного вызова для FancyBox

$("#div1").load("test1.html") 

$("a#link").fancybox({ 
    'transitionIn' : 'elastic', 
    'transitionOut' : 'elastic', 
    'width'   : 400, 
    'height'  : 200, 
    'overlayOpacity': 0.5, 
    'type'   : 'iframe' 
}); 

После .load мой FancyBox не работает.

Работает в test1.html.

Как я могу это написать?

+0

Вам нужно запустить .load() для test1.html? Fancybox это не понравится, он не любит запускать содержимое ajax'd либо ... –

ответ

2

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

$("#div1").load("test1.html", function() { 
    $("a#link").fancybox({ 
     'transitionIn' : 'elastic', 
     'transitionOut' : 'elastic', 
     'width'   : 400, 
     'height'  : 200, 
     'overlayOpacity': 0.5, 
     'type'   : 'iframe' 
    }); 
}) 
0

Возможно, вам просто нужно добавить полуколонку ; в конец этой линии?

$("#div1").load("test1.html");

Синтаксис не так ... вы получаете какие-либо ошибки?

Вы также можете рассмотреть возможность привязки этого к событию live(). В противном случае содержимое test1.html не будет включено.

Посмотреть этот пост здесь:

Fancybox, getting Fancybox to bind using LIVE() to items being loaded onto the page after load