如何将此静态init转换为动态init

时间:2011-12-22 09:15:16

标签: javascript jquery

我有这个fancybox插件很棒,但我不认为documentation

上有足够的例子
$(document).ready(function(){   
    $('nav.main a#gallery').live('click',function() {
        $.fancybox([
            {href : 'img/galeria/fondo1.jpg', title : 'Title1','nextEffect' : 'fade',   'prevEffect'    : 'fade'}, 
            {href : 'img/galeria/fondo2.jpg', title : 'Title2','nextEffect' : 'fade',   'prevEffect'    : 'fade'},
            {href : 'img/galeria/fondo3.jpg', title : 'Title3','nextEffect' : 'fade',   'prevEffect'    : 'fade'}, 
            {href : 'img/galeria/fondo4.jpg', title : 'Title4','nextEffect' : 'fade',   'prevEffect'    : 'fade'}  
        ]);
    });
});

你可以看到这会在fancybox中加载一些图像。

我希望能够通过传递一个javascript对象来实现它,所以我不需要知道哪些,或者有多少图像(在init中)并管理更新对象,但我只是不明白怎么做。

任何人都可以提供帮助。

1 个答案:

答案 0 :(得分:2)

您是否尝试过传递有效的json对象?

function getGaleriaObject()
{
  // do your database / what ever stuff here
  var obj = [
            {href : 'img/galeria/fondo1.jpg', title : 'Title1','nextEffect' : 'fade',   'prevEffect'    : 'fade'}, 
            {href : 'img/galeria/fondo2.jpg', title : 'Title2','nextEffect' : 'fade',   'prevEffect'    : 'fade'},
            {href : 'img/galeria/fondo3.jpg', title : 'Title3','nextEffect' : 'fade',   'prevEffect'    : 'fade'}, 
            {href : 'img/galeria/fondo4.jpg', title : 'Title4','nextEffect' : 'fade',   'prevEffect'    : 'fade'}  
        ];
   return obj;
}

$(document).ready(function(){   
    $('nav.main a#gallery').live('click',function() {
      var obj = getGaleriaObject();    
      $.fancybox(obj);
    });
});

考试:JsFiddle