搜索

首页  >  问答  >  正文

javascript - 关于jquery.lazyload使用中遇到的问题,求助!

发现这个插件似乎没有对动态插入的元素做处理,也就是说动态插入的元素是无法正常显示,而是一直显示loading图片,我现在的临时解决方法是,给新插入的节点加一个唯一的容器,然后对这个容器进行初始话,大家有什么办法吗?

            var index = 0;
            var tpl = $("#template").text();
            $('#addItem').on('click', function () {
                var html = render(tpl, item);

                var $container = $('<p id="newItem' + index++ + '"></p>');

                $('body').append($container.html(html));

                $container.find("img.lazy").lazyload({
                    effect: "fadeIn",
                    load: function (index, elem) {
                        $(this).parent('.box').css('background', '#fff');
                    }
                });

            });
ringa_leeringa_lee2769 天前646

全部回复(3)我来回复

  • 黄舟

    黄舟2017-05-19 10:47:21

    这不是挺好么。。。

    lazyload不是监听,自然不能对后插入的元素生效。。。

    回复
    0
  • 仅有的幸福

    仅有的幸福2017-05-19 10:47:21

    找到更好的解决方案了,直接将挂钩lazy去掉,就可以了

                $("img.lazy").lazyload({
                    effect: "fadeIn",
                    load: function (index, elem) {
                        $(this).parent('.box').css('background', '#fff').find('img').removeClass('lazy');
                    }
                });
    

    回复
    0
  • 巴扎黑

    巴扎黑2017-05-19 10:47:21

    动态添加,添加完了对新添加的元素加个 .loadlazy() 不行吗?

    https://jsfiddle.net/06rcojjd/

    回复
    0
  • 取消回复