2011-12-22 37 views
0

我有这样的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中)并管理更新对象,但我只是没有看到如何做到这一点。

任何人都可以帮忙。

回答

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); 
    }); 
}); 

Examle:JsFiddle

+1

你不需要的EVAL。你应该演示如何在他的init函数中实际使用它。 – Chris 2011-12-22 09:36:17

+0

@Chris谢谢你的提示。我更新了我的答案,使其更加清晰 – Grrbrr404 2011-12-22 09:42:17

+0

酷。现在更好的答案。 :) +1 – Chris 2011-12-22 09:43:27