Fancybox 3不适用于加载JSON DOM操纵的新内容(用于无尽的滚动)



我有一个图片库,并使用Fancybox V3。通过输入Webseite,将加载前20张图片(用PHP生成),而花式盒已连接到这些图片。

HTML部分看起来像这样:

##loop##
<div class="item">
  <a  data-fancybox="group" href="<?= $i?>">
        <img src="/thumbnail/<?= $i?>"  />
  </a>
</div>
##/loop##

fancybox是这样初始化的:

$().fancybox({
                selector: '[data-fancybox="group"]',
                loop: true,
            });

..这很好。

现在,如果用户到达页面的末尾,则使用DOM操作将JSON格式的新内容加载到网站中。为此,我使用一个占位符,该占位符是一个空的HTML模板,隐藏在Webseite中。我将该DOM元素插入画廊,并填充新元素,并带有来自JSON请求的数据。

var px = $('#picturePlaceholder').clone().appendTo('.mygallery');
            px.removeAttr('id');
            px.children('a').attr('href', jsonValues.pictureURL);
            px.children('a').children('img').attr('src', jsonValues.thumbnailURL);
            px.children('a').attr('data-fancybox', "group" );

不幸的是,这无效。如果我单击新的添加图片,则将打开"花式"盒,并且(在每种情况下)显示了原始集合中的第一张图片。洞察我可以从初始组中"走"所有图片的花式盒,但是我无法访问/查看新的已加载图片。

如果我更改JS线
px.children('a').attr('data-fancybox', "group" );px.children('a').attr('data-fancybox', "group2" );,已将新的FancyBox-Instance应用于新的(JSON DATA)记录。

但是,图片查看器无法从初始集的第一张图片滑到第二个(JSON加载)集的最后一个图片。

如果用户再次到达网页的末尾,则再次加载了一组新的图片并插入画廊,该图库缝制以破坏整个花式盒功能。Fancybox不再正确运行。甚至现有图片也无法正确打开。

那么,我如何处理json数据,将其添加到我的画廊中并将新数据注入现有的花式盒集?

在情况下回答我自己的问题,有人有同样的问题:我的问题是基于Fancybox中的一个错误,该错误已修复在版本3.2.21和更高版本中。

最新更新