Това, което можете да направите, е да вземете идващите (свързани) елементи от вашата база данни и да ги съхраните в 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 променлива) за натискане елементите само веднъж (може да се наложи да нулираме превключвателя след затваряне на fancybox обаче)
ЗАБЕЛЕЖКА :елементите ще бъдат добавени (избутани) само след като видим последния елемент в DOM (4-тия във вашия случай), така че ако започнете да разглеждате галерията назад, няма да видите новите елементи, но до втория цикъл.
Може да искате да зададете loop на false все пак