在fancybox中传递数组变量时出错

时间:2011-04-03 07:28:17

标签: javascript jquery fancybox

在我的网站中,我有一个名为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
        });
    });

1 个答案:

答案 0 :(得分:0)

ImageList是一个数组。你需要这样做(虽然为什么NA​​ME属性中的所有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, {