lightgallery 不适用于动态生成的元素

lightgallery does not work with dynamically generated elements

我已经在我的本地站点上实现了 lighgallery 插件...但这不适用于 dom 元素...

例如

1.) 将用 js 创建的 dom 元素附加到 html 代码..

如果我在 js "<span id='imgcon'><a href="image"><img src="image"></a></span>" 中创建类似的东西并且所有代码都在一个 varialbe 中让我们调用 galleryview (var galleryview) 并且我将这个变量附加到 div 即在 html 文件 <html><head></head><bdy><div class="container"></div></bdy></html> 中并从 js 文件代码 $(".container").append(galleryview); 中像这样附加,最后我使用这个 $(".imgcon").lightGallery(); 不起作用...

这里是 jsfiddle demo 不适用于 dom

2.) 图片在 html 代码中

我有html这样的代码<html><head></head><bdy><div class="container"><span class="imgcont"><a href="image"><img src="image"></a></span></bdy></html> 这很好用。$(".imgcon").lightGallery();

这里是 jsfiddle working demo 没有 dom。

问题:为什么我不能将 dom 与 lightgallery 一起使用?

第一个演示不工作,因为我使用 js dom,第二个演示工作,因为我在 html 文件中使用 html 代码。或者我的代码有任何问题。 .

只需将您的 $(".imagecontiner").lightGallery(); 放入 click 处理程序

http://jsfiddle.net/o0y70kv0/1/

以上仅适用于 第一个 动态创建的 gellery。
要使其适用于多个元素: 预先创建内存中可追加元素并分配给每个 .lightGallery() 实例

http://jsfiddle.net/o0y70kv0/6/

$(document).ready(function() {
    var imagesarray = [
        "http://www.planwallpaper.com/static/images/Winter-Tiger-Wild-Cat-Images.jpg",
        "http://www.gettyimages.ca/gi-resources/images/Homepage/Category-Creative/UK/UK_Creative_462809583.jpg",
        "http://blog.jimdo.com/wp-content/uploads/2014/01/tree-247122.jpg",
        "http://i765.photobucket.com/albums/xx291/just-meller/national%20geografic/Birds-national-geographic-6873734-1600-1200.jpg",
        "http://www.gettyimages.com/gi-resources/images/CreativeImages/Hero-527920799.jpg"
    ];

    var hiddenimages = "",
            albumcover;

    $("#appendnewcontainer").click(function() {

        $("<span />", {
            class : "container",
            appendTo : $("#fotoappendarea"),
            append : $("<span />", {
                class : "imagecontiner",
                html : "<a class='dfed' href=" + imagesarray[1] + "><img src='" + imagesarray[1] + "' class='_34'/></a>"
            }).lightGallery()
        });

    });
});

当您生成画廊项目之后,您需要在您的项目中使用以下代码

    var $methods = $('#gallery-container');

$methods.lightGallery();
$methods.data('lightGallery').destroy(true);
$methods.lightGallery({
    thumbnail: true,
    animateThumb: true,
    showThumbByDefault: true,
});