1

我有一个页面使用延迟加载插件来加载一堆小图像。我有一组过滤器可以删除元素和添加元素。因此,每次单击过滤器时,我都会在我的所有 img 元素上调用延迟加载。当我这样做时,它开始减慢页面速度,每次我调用 $("img").lazyload(); 它变得更加陷入困境。我尝试在元素被删除之前使用 unbind ,这样一旦添加的新元素就没有剩余的事件,但这仍然没有做任何事情。

任何人都知道为什么会发生这种情况。我的代码源很大,所以我不能拿出一个元素来发布。所以希望有人以前遇到过这个问题,并且可能知道它为什么会发生。

另一个问题是我必须调用 $(window).trigger("scroll"); 在我调用 $("img").lazyload(); 之后 为了加载图像。这正常吗。

4

1 回答 1

0

我有一个类似的问题,我今天能够弄清楚。在这里查看我对我的问题的解决方案:

jQuery LazyLoad 插件减慢 div 滚动

快速回答是,每次您在容器上运行它以检查滚动时,lazyload 都会绑定一个事件侦听器。不幸的是,它在重新绑定之前并没有取消绑定这个事件,所以当你一遍又一遍地运行延迟加载时,你会添加大量的滚动侦听器添加到容器中。一个快速的解决方案是 .unbind('scroll') 在您的容器上再次调用延迟加载。上面的链接有更深入的答案以及一些小提琴来查看差异。

于 2013-07-02T17:50:51.563 回答