あなたができることは、データベースから次の(関連する)アイテムを取得し、それらを jsonに保存することです。 :
のような変数var databaseResponse = [{
href: "path/image05.jpg", // 4 are visible on page so
type: "image",
title: "Image #5",
isDom: false
}, {
href: "path/image06.jpg",
type: "image",
title: "Image #6",
isDom: false
}, {
href: "path/image07.jpg",
type: "image",
title: "Image #7",
isDom: false
}]; // etc
次に、push
その変数からbeforeLoad
内のギャラリーへのアイテム のようなコールバック:
var done = false; // initialize switch
jQuery(document).ready(function ($) {
$(".fancybox").fancybox({
// loop : false, // optional
beforeLoad: function () {
// here get next items from database
// and store them in a json variable
// e.g. "databaseResponse"
if ((this.index == this.group.length - 1) && !done) {
for (var i = 0; i < databaseResponse.length; i++) {
this.group.push(databaseResponse[i]);
};
done = true; // push items only once
}
},
afterClose: function () {
done = false; // reset switch
}
});
}); // ready
通知 スイッチを使用していること (done
変数)からプッシュ アイテムは1回だけです(スイッチをリセットする必要がある場合があります ただし、fancyboxを閉じた後)
注 :アイテムは、DOMの最後のアイテム(この場合は4番目)が表示された後でのみ追加(プッシュ)されるため、ギャラリーを逆方向に参照し始めると、新しいアイテムは表示されませんが、2番目のループが表示されます。
loop
を設定することをお勧めします false
に でも