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,
});
我已经在我的本地站点上实现了 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,
});