Jquery Fancybox gallery,从最后一个元素开始

Jquery Fancybox gallery,从最后一个元素开始,jquery,symfony,fancybox,twig,fancybox-2,Jquery,Symfony,Fancybox,Twig,Fancybox 2,我使用fancyBox()显示带有缩略图的图像库,但我的库总是以最后一个元素开始 {% for pic in property.media.galleryHasMedias %} <a class="fancybox-img" href="{% path pic.media, 'reference' %}" rel="gallery" title="image bien"> {% thumbnail pic.media, 'big' %} </a>

我使用fancyBox()显示带有缩略图的图像库,但我的库总是以最后一个元素开始

{% for pic in property.media.galleryHasMedias %}
  <a class="fancybox-img" href="{% path pic.media, 'reference' %}" rel="gallery" title="image bien">
    {% thumbnail pic.media, 'big' %}
   </a>                
{% endfor %}
有没有办法强迫fancybox从我的第一张图片开始


这里是fiddle:)

尝试从您的设置中删除索引:2…

关于发生的事情的一些解释:

执行此操作时:

$(".fancybox-img").fancybox();
$(".fancybox-img").fancybox().trigger("click");
。。。使用类
fancyboximg

好的,是的,我知道,但它实际上是如何工作的

  • 脚本找到类为
    fancyboximg
    的第一个元素,并将其绑定到fancybox
  • 然后,它找到第二个并将其绑定到fancybox
  • 诸如此类。。。直到找到最后一个元素并将其绑定到fancybox
。。。这听起来很明显,你可能会想,但是,当你这么做的时候:

$(".fancybox-img").fancybox();
$(".fancybox-img").fancybox().trigger("click");
。。。因为您链接了两个方法,所以脚本实际上做的是:

  • 它找到第一个元素,将其绑定到fancybox,然后在该元素上触发
    单击
    事件
  • 然后它找到第二个元素,将其绑定到fancybox,并在第二个元素上再次触发
    单击
    事件
  • 依此类推,直到找到最后一个元素,将其绑定到fancybox并再次触发
    单击
    事件
由于最后一个
点击
是在最后一个元素上触发的(就在它绑定到fancybox之后),那么最后一个元素就是您在fancybox中得到的

解决方法

要从第一个元素触发您的图库(假设这是您想要的),请使用
.eq()
方法筛选应触发
事件的元素,如下所示:

$(".fancybox").fancybox().eq(0).trigger("click");

请参见

我在没有索引设置的情况下遇到了相同的问题,我也尝试了不同的值,但没有效果:(willfried,你确定其他地方没有其他fancybox设置吗?你能为此发布一个JSFIDLE吗?我用我的问题的一个JSFIDLE链接编辑了我的帖子,提前谢谢。你的html代码看起来有点凌乱。在另一个“a”标记中有一个打开的“a”标记,然后是一个“img”在第二个问题中…首先清理html代码,然后我们再看;)奇怪的是,我在2010年问过同样的问题;)