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

时间:2015-12-15 20:35:06

标签: javascript jquery html css lightgallery

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

例如

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

如果我在js "<span id='imgcon'><a href="image"><img src="image"></a></span>"中创建这样的内容并且所有代码都在varialbe中,则调用galleryview(var galleryview)并将此变量附加到html文件{{1}中的div从js文件代码<html><head></head><bdy><div class="container"></div></bdy></html>添加这样的内容并在最后使用此$(".container").append(galleryview);不起作用...

以下jsfiddle demo无法使用dom

2。)图片以html代码

我有html代码这样$(".imgcon").lightGallery(); 这样可以正常工作。<html><head></head><bdy><div class="container"><span class="imgcont"><a href="image"><img src="image"></a></span></bdy></html>

这是jsfiddle working demo没有dom。

问题:为什么我不能在lightgallery中使用dom?

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

2 个答案:

答案 0 :(得分:1)

只需将$(".imagecontiner").lightGallery(); 置于内{/ 1}}处理程序

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

以上内容仅适用于第一个动态创建的gellery 使其适用于多个元素:预创建内存中可附加元素并为每个click实例分配

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

.lightGallery()

答案 1 :(得分:0)

在之后生成图库项目时,需要在项目中使用以下代码

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

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