我有一个页面使用延迟加载插件来加载一堆小图像。我有一组过滤器删除元素和添加元素。因此,每次单击过滤器时,我都会在所有img元素上调用延迟加载。当我这样做时,它开始减慢页面,每次我调用$(“img”)。lazyload();它变得更加陷入困境。我尝试在删除元素之前使用unbind,因此新的一次附加没有留下事件,但是这个stil什么也没做。
任何人都知道为什么会这样。我的代码源很大,所以我不能把一个元素发布出来。所以希望有人之前遇到过这个问题,并且可能知道为什么会这样。
另一个问题是我必须调用$(window).trigger(“scroll”);我打电话给$(“img”)。lazyload();为了加载图像。这是正常的。
答案 0 :(得分:0)
我有一个类似的问题,我今天能够弄明白。请在此处查看我的问题解决方案:
jQuery LazyLoad plugin slowing down div scrolling
快速回答虽然是lazyload每次在容器上运行它时都会绑定一个事件监听器以检查滚动。不幸的是,在重新绑定之前它并没有取消绑定这个事件,所以当你一遍又一遍地运行lazyload时,你会添加大量的滚动侦听器添加到容器中。一个快速的解决方案是在再次调用延迟加载之前对容器进行.unbind('scroll')。上面的链接有更深入的答案以及一些小问题,以查看差异。