所以我在解决如何使以下脚本工作方面遇到了一些实际困难。它将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>
谢谢!
答案 0 :(得分:1)
试试这段代码,对我有用:
<script>
$(document).ready(function() {
var AlbumID = "206175519447064";
var graph = "https://graph.facebook.com/" + AlbumID + "/photos?callback=?";
$.getJSON(graph, function(data) {
var albumItem = [];
for(var key in data){
for(var key2 in data[key]){
val2=data[key][key2];
if(typeof(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');
$("a.fancied").fancybox();
});
});
</script>
基本上$ .each是异步的,当你创建时,albumItem是空的。
如果您还有其他需要,请告诉我。
干杯
-G。