javascript - 动态创建元素的延迟加载

标签 javascript jquery

在我的页面上很多地方我使用了lazyload效果。
插件网址 http://www.appelsiini.net/projects/lazyload . 对于图像,我添加了类“lazy”和

  <input type="button" onclick="fn()" >
<script type="text/javascript">

  $(function() {
    fn()
     $("img.lazy").lazyload();
  });

function fn(){


   var img = document.createElement('img');
   img.setAttribute('data-original','bg.jpg')
   img.className='lazy'
   document.body.appendChild(img);
}

</script>

但是在其他页面中,我动态创建了类为“lazy”的图像,但是 lazyload 不起作用?如何修复?

最佳答案

只需使用 lazySizes .这个 lazyloader 是在考虑动态内容的情况下开发的。无需通过在 JS 的不同位置调用方法来触发事件或牺牲关注点分离。

只需使用:

<input type="button" onclick="fn()" value="add image">
<img data-src="http://lorempixel.com/400/200/" class="lazyload" />
<script>
    function fn() {
        var img = document.createElement('img');
        img.setAttribute('data-src', 'http://lorempixel.com/400/200/')
        img.className = 'lazyload';
        document.body.appendChild(img);
    }

    fn();
</script>

这是一个演示:http://jsfiddle.net/osnwer4w/3/

关于javascript - 动态创建元素的延迟加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29367660/

相关文章:

javascript - 无法使用 Enzyme 和 Jest 获取或设置 window.location

javascript - 包含 JSON 数据的 Google 面积图空白页面

javascript - 在父 DIV 中垂直对齐单个 DIV(img)

javascript - SetInterval 不适用于 JQuery 动画

javascript - 是否可以使用 html css 和 jquery 创建具有多列的下拉菜单(如大型菜单)而不使用任何插件?

javascript - 动态添加文本框不起作用

javascript - 如何让枪接受自签名证书?

Javascript:单击后更改按钮文本。 event.target 不起作用

jquery - 即使请求 header 中包含正确的 x-csrf-token,也不要在 Ajax 帖子上设置 current_user

php - 在 PHP 中重现 jquery match()