javascript - 灯箱 2 : how to add dynamically images via javascript

标签 javascript jquery html lightbox lightbox2

我在尝试动态添加图像时遇到问题,因为 lightbox2(由 lokesh dakar 制作)是在文档加载后由现有的 html 编码图像初始化的,但它不会第一次之后再解析文档。

如果我尝试使用 javascript 添加新图像(例如将它们附加到正文中),它们不会添加到灯箱组中。

官方网站的文档似乎没有描述任何脚本方法

谁有经验可以帮帮我?非常欢迎使用 jquery 的解决方案,但我也可以很好地处理 vanilla js。


代码示例:

HTML

<body>
 <div id="container">
  <a href="images/image-2.jpg" data-lightbox="roadtrip">Image #2</a>
  <a href="images/image-3.jpg" data-lightbox="roadtrip">Image #3</a>
  <a href="images/image-4.jpg" data-lightbox="roadtrip">Image #4</a>
 </div>
 <!-- where 'Image #X' = <img src="images/thumb/image-X.jpg>" -->
 <div id="loadmore">load more images</div>
 <script src="path/to/lightbox.js"></script>
 <script>
  /* see below for the script */
 </script>
</body>

javascript

$(function(){
  $('#loadmore').click(function(){
   //ajax request for more images.
   //load them with all the needed properties...
   //then put them into the container:
   var IMG = $('<a href="images/image-10.jpg" data-lightbox="roadtrip">'+
       '<img src="images/small/image-10.jpg">'+
     '</a>');
   //magic here... add IMG to roadtrip lightbox group!!!
   //probably something like lightbox.groups['roadtrip'].add(IMG)
   //but i'm only speculating
   $('#container').append(IMG)
  });
})

最佳答案

在花了几个小时测试和阅读代码后,我想出了这个神奇的代码:

//set album values
IMG = $('<a href="...">')
    .attr('data-lightbox','roadtrip')
    .append('<img src="...">')
//lightbox open:
IMG.click(function(){
    lightbox.start($(this));
    return false;
})

一些有用的提示:

  • 不要使用 $(...).data('lightbox','group') 设置数据,因为 lightbox 使用选择器 $('a[ data-lightbox]') 每次点击一个链接。相反,您应该使用 $(...).attr('lightbox','group')

  • lightbox.album 是一个您不需要处理的临时变量。

关于javascript - 灯箱 2 : how to add dynamically images via javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34454681/

相关文章:

javascript - jQuery 是如何让 jQuery 对象既是函数又是对象属性的呢?

javascript - 如何在 touchend 事件中获取 touchstart 值?

html - 如何在移动设备上重定向到 AMP 版本的网站?

javascript - 如何使 URL 参数匹配可选

javascript - 使用 mocha 对 react 组件进行单元测试

javascript - 我想在 onChange 中使用 2 个函数

javascript - Rails/Ajax 将表单从创建更改为提交后更新

php - php 代码周围的 div 标签

CSS:修复 div 的溢出问题并修复背景图像

javascript - 如何仅使用 $(this) 更改所选元素的 CSS