2011-12-29 51 views
2

我生成含在MySQL数据库中保存信息的多个画廊的HTML页面,我需要修改Fancybox2电话如下Fancybox2:修订要求多个画廊

$(document).ready(function() { 
    $("a[rel=gall24],a[rel=gall30], etc, etc etc").fancybox({ ... }); 
}); 

如何添加元素引用该调用?也就是说,我需要为呼叫添加一个可变数字a[rel=XXX]

我是否使用调用中的值和引用创建了一个变量?如果是这样,我不确定的语法,并会赞赏一个例子。

回答

15

你可以使用像一个单一的脚本:

$(document).ready(function() { 
    $("a.fancybox").fancybox(); 
}); 

然后,当你创建你的画廊仅添加不同的rel属性为每家画廊,但相同的class="fancybox",如:

<!--gallery 01 --> 
<a class="fancybox" href="images/01.jpg" rel="gallery01">image 01</a> 
<a class="fancybox" href="images/02.jpg" rel="gallery01">image 02</a> 
<a class="fancybox" href="images/03.jpg" rel="gallery01">image 03</a> 

<!--gallery 02 --> 
<a class="fancybox" href="images/04.jpg" rel="gallery02">image 04</a> 
<a class="fancybox" href="images/05.jpg" rel="gallery02">image 05</a> 
<a class="fancybox" href="images/06.jpg" rel="gallery02">image 06</a> 

当你点击任何图像(例如图像01),它将在(Fancybox)画廊中仅显示具有相同rel属性的元素(图像02和03,如上例+图像01当然)

用的fancybox V2.X你不需要使用jQuery live()由@sczizzo的建议以来的fancybox V2.X已经支持现有的和动态添加元素

最后一个音符:不使用的ID不止一个元素。 ID应该是唯一的,你不应该在同一个HTML文档中使用相同的ID两次或更多次。 检查http://fancyapps.com/fancybox/#support常见问题第6号更多

+0

非常感谢。作品一种享受。我没有意识到,已经指定了一个类Fancybox2,可以找到该特定REL引用的所有匹配图像。 – mcl 2011-12-30 13:01:02

1

为什么不多次拨打fancybox()?您可以保存您传入的选项并在以后使用它们。

在另一方面,你也可以使用一个类来代替a[rel=XYZ]选择,这是我会做什么:

$('a.gallery').fancybox({ ... }); 

如果内容已经被加载动态(例如,通过Ajax),您可能会使用jQuery的live()做类似的事情。

+0

感谢您的回复。我只想打电话给fancybox2,准备好文件上的不同图库ID。所有画廊的选项都是相同的。我可以使用ID,但是REL有什么优势?我不认为我可以使用类,因为这意味着相同。 jquery live()现在有点超出了我的知识水平。画廊的细节从PHP返回到我的脚本,然后我为每个画廊在DIV内创建缩略图。 – mcl 2011-12-29 17:32:02