让 Lightbox 与相册中的 AJAX 配合使用
所以我在弄清楚如何使以下脚本工作方面遇到了一些真正的困难。它将 Facebook 相册加载到页面上,但随后我需要调用 $("a.fancied").fancybox();
才能使灯箱工作。
下面的代码尝试将此行作为 getJSON() 的回调来执行,但我对这方面还是个新手,只是无法弄清楚为什么它不起作用。
如果我在所有内容都加载后在控制台中输入 $("a.fancied").fancybox();
则没有问题。
正在运行的网站:http://bagsoffunkansascity.org/white-party-2011.html
<div id="FBalbum"></div>
<script>
$(document).ready(function() {
var AlbumID = "206175519447064";
var graph = "https://graph.facebook.com/" + AlbumID + "/photos?callback=?";
$.getJSON(graph, function(data) {
var albumItem = [];
$.each(data, function(key, val) {
$.each(val, function(key2, val2) {
if (val2.source != undefined){
albumItem.push(
'<li id="' + key2 + '"><a class="fancied" href="' + val2.source + '"><img src="' + val2.picture + '" /></a></li>'
);
}
});
});
$('<ul />', {
'class': 'album',
html: albumItem.join('')
}).appendTo('#FBalbum');
}, function(){
$("a.fancied").fancybox();
});
});
</script>
谢谢!
So I am having some real difficulty figuring out how to make the following script work. It loads a facebook photo album onto the page, but then I need to call $("a.fancied").fancybox();
to make lightbox work.
The code below attempts to execute this line as a callback to getJSON(), but I am kind of a novice at all this and just cannot figure out why it is not working.
If I type in the console after everything is all loaded $("a.fancied").fancybox();
works no problem.
The site in action: http://bagsoffunkansascity.org/white-party-2011.html
<div id="FBalbum"></div>
<script>
$(document).ready(function() {
var AlbumID = "206175519447064";
var graph = "https://graph.facebook.com/" + AlbumID + "/photos?callback=?";
$.getJSON(graph, function(data) {
var albumItem = [];
$.each(data, function(key, val) {
$.each(val, function(key2, val2) {
if (val2.source != undefined){
albumItem.push(
'<li id="' + key2 + '"><a class="fancied" href="' + val2.source + '"><img src="' + val2.picture + '" /></a></li>'
);
}
});
});
$('<ul />', {
'class': 'album',
html: albumItem.join('')
}).appendTo('#FBalbum');
}, function(){
$("a.fancied").fancybox();
});
});
</script>
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试这个代码,对我有用:
基本上 $.each 是异步的,当您创建 albumItem 时是空的。
如果您还需要什么,请告诉我。
干杯
G。
try this code, works for me:
Basically $.each is asynchronous and when you're creating the albumItem is empty.
Let me know if you need anything else.
Cheers
G.