AJAX 上的 Fancybox 缩略图

Fancybox thumbnail on AJAX

我正在使用正在动态加载的 fancybox 画廊。我总是有一张带有 data-fancybox 属性和 ID 的图片。

JS是这样的:

  $('[data-fancybox]').each(function(e){
  var idgal = $(this).data("fancybox");
  $(this).fancybox({
    loop: false,
    onInit: function (instance) {
        $.ajax({
            type: 'POST',
            url: '/loadGallery.php?gallery='+idgal,
            dataType: 'json',
            success: function (data) {
              $.each(data, function (index,src) {
                instance.addContent({
                  'type': 'image',
                  'src': src.src
                });
              });
            }
        });
    },
    thumbs: {
        autoStart: true,
        axis      : 'x'
    }
  })
})

问题是,我没有得到动态加载图像的缩略图。有任何想法吗?谢谢!

如果您要求最后一个 fancyBox (v 3.5.7),要获取缩略图,您还需要继续缩略图 URL(在 options/opts 键内)。而且,最重要的是,最后需要重新初始化拇指(例如,在 Ajax 成功块内的每个循环之后)。

这里只是你的例子中的一部分,有一些变化:

    // Ajax success
    success: function ( data ) {

      $.each(data, function (index, src) {
        instance.addContent({
          'type': 'image',
          'src': src.src,
          'opts': {         
               'thumb': 'thumb.jpg' // thumbnail url (eg. src.opts.thumb)
          }
        });
      });

      // reinitialize Thumbs
      instance.Thumbs.init(instance);

      // optional: to get thumbs autoStart
      instance.Thumbs.show();          

    } // success