Javascript jQueryFancyBox只显示ajax内容的第一行

Javascript jQueryFancyBox只显示ajax内容的第一行,javascript,jquery,fancybox-3,Javascript,Jquery,Fancybox 3,我正在使用jQueryFancyBox 3.5.7。当我像下面这样加载ajax内容时,它会返回几行链接。问题是弹出窗口仅显示第一行。为什么?获取数据的链接: <a data-fancybox data-type="ajax" data-src="/code/lenker.php?q=Abies%20alba" href="javascript:;" title="Flower" class="ajax">Click for a lightbox </a> 返回的数据

我正在使用jQueryFancyBox 3.5.7。当我像下面这样加载ajax内容时,它会返回几行链接。问题是弹出窗口仅显示第一行。为什么?获取数据的链接:

<a data-fancybox data-type="ajax" data-src="/code/lenker.php?q=Abies%20alba" href="javascript:;" title="Flower" class="ajax">Click for a lightbox </a>

返回的数据(Chrome inspector中的XHR响应)


弹出窗口仅显示以下内容:

<a class="external" href="http://databank.artsdatabanken.no/FremmedArt2012/N63753" data-featherlight="ajax">fremmedartsvurdering 2012 for edelgran</a>


始终仅显示第一行。如果我使用ajax访问带有硬编码链接的页面,它会显示所有链接。所以代码生成时会发生一些事情。有没有理由不显示所有的html?

这个想法是ajax响应应该返回一个被视为“主要内容”的元素,因此您应该简单地将所有内容包装在一些
中。这个想法是ajax响应应该返回一个被视为“主要内容”的元素,因此,您只需将所有内容包装在一些
中,Janis的解决方案就可以了。请记住在所有元素周围添加一个外部标记。
我还遇到了一个问题,单击DataTable中生成的链接只会显示一个空白的fancybox弹出窗口。我通过创建一个隐藏的DIV并进行ajax调用来解决这个问题,用数据填充DIV,然后在该DIV上调用fancybox()。我的DIV是
。在DataTables中创建的链接如下所示:

<a rel="Hesperis matronalis" href="#" class="show_link" title="Show links for Hesperis matronalis"><i class="fas fa-link fa-lg"></i></a>

Janis的解决方案很好。请记住在所有元素周围添加一个外部标记。 我还遇到了一个问题,单击DataTable中生成的链接只会显示一个空白的fancybox弹出窗口。我通过创建一个隐藏的DIV并进行ajax调用来解决这个问题,用数据填充DIV,然后在该DIV上调用fancybox()。我的DIV是
。在DataTables中创建的链接如下所示:

<a rel="Hesperis matronalis" href="#" class="show_link" title="Show links for Hesperis matronalis"><i class="fas fa-link fa-lg"></i></a>

哇,杰尼斯,我就知道这很简单!并不是说你的答案很简单,而是我在jQuery上工作了10年,从来没有这样做过:-)非常感谢你指出这一点!哇,杰尼斯,我就知道这很简单!并不是说你的答案很简单,而是我在jQuery上工作了10年,从来没有这样做过:-)非常感谢你指出这一点!谢谢,如果你知道的话,我还有一个问题。我使用的是DataTables,表中的一个单元格是一个链接,它打开一个包含链接列表的lightbox。如果我在表外有一个带有相同代码的静态链接,它工作正常,弹出窗口包含所有html。但是如果我点击DataTables中的链接,灯箱就是emtpy。没有内容!我可以在XHR流量中看到,我仍然得到了正确的html。你知道为什么弹出窗口中什么都不显示吗?我在文档的最底部包含了fancybox.js。由于链接打开了一个灯箱,脚本应该可以工作了?谢谢,如果你有任何想法,我还有另一个问题。我使用的是DataTables,表中的一个单元格是一个链接,它打开一个包含链接列表的lightbox。如果我在表外有一个带有相同代码的静态链接,它工作正常,弹出窗口包含所有html。但是如果我点击DataTables中的链接,灯箱就是emtpy。没有内容!我可以在XHR流量中看到,我仍然得到了正确的html。你知道为什么弹出窗口中什么都不显示吗?我在文档的最底部包含了fancybox.js。既然链接打开了一个灯箱,脚本应该可以工作吗?
  $("#example tbody").on('click','.show_link', function(e) {
      var nid = $(this).attr("rel");
    $.get("/code/lenker.php", {q: nid},
        function(data){
        $("#lenker").html(data);
    $.fancybox.open( $('#lenker'));
    extlink();
    });
   });