我正在使用 Mika Tuupola 的延迟加载插件http://www.appelsiini.net/projects/lazyload来延迟加载图像,因为你向下滚动一个长的图像库。问题是在 10 张图片之后,我使用无限滚动,所以我获取接下来的 10 张图片,并通过 ajax 附加它们。延迟加载不再适用于下一批附加图像。
这是一个非常大量 javascript 的图片库,因此对于其他所有内容(例如工具提示、模式叠加层等),我一直在使用 jQuery 的 delegate() 来绑定到 ajax 插入的元素。延迟加载插件的问题是我不确定要绑定什么事件。
所以说我想用一类“懒惰”来延迟加载图像。我会这样写:
$("img.lazy").lazyload({
effect: "fadeIn"
});
它适用于前 10 张图像,但在通过 ajax 插入更多图像后停止工作。我唯一能想到的就是在加载事件上使用委托,如下所示:
$(document).delegate("img.lazy", "load", function(event) {
$(this).lazyload({
effect: "fadeIn"
});
});
但这打破了一切。谢谢!
编辑: 我用来加载更多记录的 jQuery(这是一个 Rails 应用程序):
$(window).scroll(function() {
var url;
url = $(".pagination .next_page").attr("href");
if (url && $(window).scrollTop() > $(document).height() - $(window).height() - 50) {
$(".pagination").html("<p>loading more images...</p>");
return $.getScript(url);
}
});
$(window).scroll();