将各种“rel”属性添加到fancybox画廊

我有一个包含4个fancybox(v.2)画廊的页面,当我点击第一个画廊时,他绕过页面上的所有画廊,这很糟糕。 所以我想给每个画廊一个不同的“rel”属性(rel =“gallery1”,rel =“gallery2”,rel =“gallery3”……)。 所以我需要数这些画廊并给他们数字。 我的代码:

$(document).ready(function() { $(".fancybox") .attr('rel', 'gallery') .fancybox({ openEffect : 'none', closeEffect : 'none', padding : 0, loop : false }); 

});

假设每个图库都在

例如:

  
... ...
... ...

您只需使用.each( function(index, element) )循环遍历.post元素。 使用每个.post索引来构建库标识符,并在选择.fancybox元素时将每个.post元素用作jQuery选择器上下文 :

 $(document).ready(function() { $(".post").each(function(idx, elm) { $(".fancybox", elm) .attr('rel', 'gallery' + idx) .fancybox({ // ... }); }); }); ... 

$(".fancybox", elm)告诉jQuery使用fancybox类查找元素,但只匹配作为elm后代的元素(这里是.each循环的当前.post元素)。

根据fancybox的工作原理,您可以将.fancybox()调用移动到each之外:

 $(".post").each(function(idx, elm) { // assign `rel` values as above... }); $(".fancybox").fancybox({ // ... });