Я использую плагин Lazy Load Мики Тууполы http://www.appelsiini.net/projects/lazyload, чтобы откладывать загрузку изображений по мере того, как вы прокрутите вниз длинную галерею изображений. Проблема в том, что после 10 изображений я использую бесконечную прокрутку, поэтому я получаю следующие 10 изображений и добавляю их через ajax. Отложенная загрузка больше не работает со следующим пакетом добавленных изображений.
Это довольно насыщенная javascript галерея изображений, поэтому для всего остального (например, всплывающих подсказок, модальных оверлеев и т. д.) я использовал делегат() jQuery для привязки к элементам, вставленным ajax. Проблема с плагином Lazy Load заключается в том, что я не уверен, к какому событиюпривязываться.
Допустим, я хочу лениво загружать изображения с классом «ленивый». Я бы написал так:
$("img.lazy").lazyload({
effect: "fadeIn"
});
и работает для первых 10 изображений, но перестает работать после вставки большего количества через ajax. Единственное, что я могу придумать, это использовать делегат для события load, например:
$(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("loading more images...
");
return $.getScript(url);
}
});
$(window).scroll();