当过滤器被应用到CMS列表时更新Fancybox 4内容

n9vozmp4  于 2022-11-03  发布在  jQuery
关注(0)|答案(1)|浏览(125)

我有一个带有图片的cms收藏列表。我用mixitup库过滤它们,它只设置display:none为过滤掉的图片。点击收藏列表中的任何一个缩略图都会触发fancybox 4,里面有相应的全分辨率图片。在里面你可以点击所有的收藏列表图片。过滤列表工作正常。
我想做的是当一些过滤器被应用时,在点击缩略图img时更新fancybox,并且只显示过滤后的图像。现在Fancybox总是显示一个完整的未过滤的图像集。
它会像这样分配给内容

Fancybox.bind('[data-fancybox="gallery"]')

我试图更新Fancybox,寻找没有display:none的元素,点击过滤器按钮

let visibleLinks = $('.lightbox-link:not(:hidden)');

$('.lightbox-link').on('click', function() {
      Fancybox.unbind('[data-fancybox="gallery"]');
      Fancybox.bind(visibleLinks);
    });

但是,这一点,以及许多其他的变化,已经失败了。希望得到一些输入从你-我如何可以更新fancybox的内容?

enyaitl3

enyaitl31#

您是否尝试过直接使用选择器?如下所示:

Fancybox.bind('.lightbox-link:not(.hidden)');

因为你可以这样读代码片段:
when user clicks any element matching '.lightbox-link:not(.hidden)' selector, start Fancybox and create gallery using elements that match that selector
我想这就是你要找的。

相关问题