在我的网站中,我有一个名为images的链接,我想要的是当用户点击它时,它将使用fancybox显示图像库。我使用name属性来放置所有图像文件名,然后使用javascript来解析它。
我的问题是当使用多个图像时,fancybox没有加载。但是如果我硬编码文件名就行了。我不确定为什么。
这是我的代码。
$(".imageGallery").click(function() {
var pURL = $(this).attr("name");
var pID = "#" + $(this).attr("id");
var imageList="";
var arrUrl = new Array();
var i=0;
if (pURL.indexOf(',') != -1)
{
arrUrl = pURL.split(',');
imageList = arrUrl;
}else {imageList = pURL;}
alert(imageList);
$.fancybox([imageList], {
'autoScale' : true,
'autoDimensions' : true,
'speedIn' : 800,
'speedOut' : 800,
'changeSpeed' : 500,
'padding' : 0,
'centerOnScroll' : false,
'type' : 'image',
'transitionIn' : 'fade',
'transitionOut' : 'fade',
'showCloseButton' : true,
'titlePosition' : 'outside',
'hideOnContentClick' : true,
'overlayColor' : '#1b2642',
'showNavArrows' : true
});
});
答案 0 :(得分:0)
ImageList是一个数组。你需要这样做(虽然为什么NAME属性中的所有url都有?):
if (pURL.indexOf(',') != -1) {
imageList = pURL.split(',');
}
else {
imageList = [pURL];
}
alert(imageList);
$.fancybox(imageList, { // no brackets
假设您正在尝试演示页面上的“manual2”版本
$("#manual2").click(function() {
$.fancybox([
'http://farm5.static.flickr.com/4044/4286199901_33844563eb.jpg',
'http://farm3.static.flickr.com/2687/4220681515_cc4f42d6b9.jpg',
{
'href' : 'http://farm5.static.flickr.com/4005/4213562882_851e92f326.jpg',
'title' : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit'
}
], {
'padding' : 0,
'transitionIn' : 'none',
'transitionOut' : 'none',
'type' : 'image',
'changeFade' : 0
});
});
更新:要使用第二种格式,您可以使用rel和title:
$(".imageGallery").click(function() {
var pURL = $(this).attr("rel");
var pTitle = $(this).attr("title");
var arrUrl = (pURL.indexOf(',') != -1)?pURL.split(','):[pURL];
var arrTitle = (pTitle.indexOf(',') != -1)?pTitle.split(','):[pTitle];
var imageList = [];
for (var i=0;i<arrUrl.length;i++) {
imageList[i] = { "href":arrUrl[i], "title": arrTitle[i] }
}
$.fancybox(imageList, {