Những gì bạn có thể làm là lấy các mục sắp tới (có liên quan) từ cơ sở dữ liệu của bạn và lưu trữ chúng trong json biến như:
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
Sau đó, push
các mục từ biến đó vào thư viện trong beforeLoad
gọi lại như:
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
Thông báo rằng chúng tôi đang sử dụng một công tắc (done
biến) thành push các mục chỉ một lần (chúng tôi có thể cần đặt lại công tắc sau khi đóng hộp thư thích hợp)
LƯU Ý :các mục sẽ được thêm (đẩy) chỉ sau khi chúng ta nhìn thấy mục cuối cùng trong DOM (mục thứ 4 trong trường hợp của bạn), vì vậy nếu bạn bắt đầu duyệt ngược thư viện, bạn sẽ không thấy các mục mới nhưng cho đến vòng lặp thứ hai.
Bạn có thể muốn đặt loop
thành false
mặc dù