如何使用Ajax加载Fancybox的标题内容?

时间:2018-04-26 10:38:56

标签: ajax fancybox-3

我想在Fancybox的标题中将一些信息显示为HTML。

这些信息作为带有ajax的HTML元素加载到Image旁边。

到目前为止,我有一个afterload方法,通过分离它并将加载了ajax后附加到标题中,将此HTML元素中的标题内容加载到标题中。

afterLoad : function (instance, slide) {
                 $( ".fancybox-slide--current .caption-content" ).detach()
                 .appendTo( ".fancybox-caption" );
            }

这是我使用的解决方法,有更简洁的方法吗?

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解你,但我想你正在寻找一种正确更新标题的方法。这是一个演示,您可以调整它以使用ajax:

$('[data-fancybox="images"]').fancybox({

  afterLoad: function(instance, current) {

    if (instance.group[ current.index ].isProcessed !== true ) {

      setTimeout(function() {
        if ( !instance.isClosing ) {
          var caption = 'Another caption for #' + (current.index + 1);

          // Set caption permanently for current group item
          instance.group[ current.index ].opts.caption = caption;

          // Set caption for current slide object
          current.opts.caption = caption;

          // Update caption HTML element
          instance.updateControls();

          // Do this only once
          instance.group[ current.index ].isProcessed = true;
        }

      }, 3000);
    }
  }
});

https://codepen.io/anon/pen/RyGZZE?editors=1010