助けを求めています
私が見つけて微調整しようとしているコードがあります。動作しますが、現時点で 26 枚あるアルバムから画像を取得します。ランダムに11個だけ取得してdivに追加したい。あなたがそれを助けることができれば、それは素晴らしいことです. 少なくとも同じ表示された11枚の写真でインデックスが使用されないように、履歴を追加しようとしました。誰かがそれを機能的にクリーンアップするのを手伝ってくれるなら、それは素晴らしいことです. 交通事故で亡くなった姪っ子のために無料でやっています。
http://jsfiddle.net/ad5qa/2JjbV/
$.fn.fbPhotos = function (album, limit) {
function base_append(obj) {
$(base).append(obj);
}
function getPhoto(obj) {
var id = obj.id;
var img = obj.img;
var link = obj.link;
var wrap = $('<div></div>').attr({
'class': 'fb-photo',
'id': id
});
var avatar = new Image();
avatar.src = img;
var _avatar = $('<a></a>').attr('href', link).attr('target', '_blank').attr('class', 'avatar').html(avatar);
$(wrap).append($(_avatar));
return wrap;
}
function init() {
fetch();
}
function fetch() {
var r;
var data = {};
$.ajax({
url: 'https://graph.facebook.com/' + albumId + '/photos?type=small&limit=' + topLimit,
type: 'GET',
dataType: 'jsonp',
data: data,
success: function (obj) {
// console.log(obj);
if (obj.error) {
/* var img = new Image();
img.src = theme_url + '/images/ico_fail_bird.png';
wipe(img); */
return false;
} else {
var results = {};
for (var k = 0; k < obj.data.length; k++) {
if (obj.data[k].images) {
results[k] = {
'id': obj.data[k].id,
'img': obj.data[k].images[8].source,
'link': obj.data[k].link
};
}
}
k = 0;
var hist = [];
for (var w = 0; w < 11; w++) {
var rnd = Math.floor((Math.random() * obj.data.length - 1) + 1);
if ($.inArray(rnd, hist) == -1) {
hist.push(rnd);
$('.vcard').append(rnd + ' - ');
base_append(getPhoto(results[rnd]));
k++;
if (k >= topLimit) {
break;
}
}
}
if (hist.length > obj.data.length - 2) hist = null;
(function showNext(jq) {
jq.eq(0).show("slide", null, 100, function () {
(jq = jq.slice(1)).length && showNext(jq);
});
})($('div.fb-photo'));
return true;
}
},
error: function (obj) {
// @todo: do something like append an error message or an error image
/* var img = new Image();
img.src = '/images/fail.png';
wipe(img); */
return false;
}
});
}
if ($(this).size() > 0) {
var base = $(this);
var topLimit = (limit ? limit : 50);
var albumId = (album ? album : ($(this).attr("fbAlbum") ? $(this).attr("fbAlbum") : '0'));
init();
}
};
$(".block-facebook").fbPhotos();
$(document).ready(function () {
setInterval(function () {
$(".block-facebook").fbPhotos();
}, 5000);
});