2012-07-07 13 views
6

Próbuję zastosować Lazy Load plugin do wielu kontenerów. Znalazłem to podobne pytanie: Lazy Load on MULTIPLE horizontal containers.Wiele kontenerów w Lazy Load

to moja próba: http://jsfiddle.net/BAFMC/

$(".p_outer_content").each(function() { 
    var tthis = $(this); 
    $(this).find('img').lazyload({ 
     container: tthis 
    }); 
});​ 

Ale mam ten sam problem co w kwestii wspomnianego, co jest, że obciążenie Lazy odnosi się tylko do ostatniego pojemnika (.p_outer_content) (który jest trzeci w skrzypce).

Czy ktoś wie, jak rozwiązać ten problem lub ma inne sugestie? góry dzięki”

EDIT:

Ok, próbowałem ponownie zastosować funkcję LazyLoad każdym razem jeden z pojemników jest przewijany:

$(".p_outer_content").each(function() { 
    var tthis = $(this); 
    $(this).find('img').lazyload({ 
     container: tthis 
    }); 
}); 

$(".p_outer_content").scroll(function() { 
    var tthis = $(this); 
    $(this).find('img').lazyload({ 
     container: tthis 
    }); 

});​ 

http://jsfiddle.net/BAFMC/4/

który pracuje, ale nie wiem, czy to dobry sposób na rozwiązanie tego problemu. Czy ktoś jednak wymyślił lepsze rozwiązanie? Dzięki "

+1

błąd został naprawiony w 1.8.0. –

+0

Dzięki! Wspaniale to słyszeć. – Alvaro

Odpowiedz

5

Istnieje błąd w wtyczce LazyLoad. Gdy podasz niestandardowy kontener, wystąpił globalny wyciek zmiennej. W tym widelcu dodałem minimalną niezbędną poprawkę.

https://raw.github.com/marchingants/jquery_lazyload/master/jquery.lazyload.js

Oto demo działa http://jsfiddle.net/BAFMC/5/

Używam surowy plik GitHub bezpośrednio w tym przykładzie, ale w projekcie, sklonować pliku minify go i używać go lokalnie.

+0

Dziękuję bardzo " – Alvaro

+0

Działa dobrze dla mnie dziękuję! –

+2

W js fiddle wszystkie obrazy wydają się pozostać szare. Czy kod jest nadal ważny? –

3

Aby uzyskać wiele elementów div do pracy z lazyload, trzeba wyraźnie wspomnieć o identyfikatorach kontenerów. Gdy masz dwa DIV #container1 i #container2 następnie napisać:

$("#container1 img.lazy").lazyload({ container: $("#container1") });

$("#container2 img.lazy").lazyload({ container: $("#container2") });

Zamiast: $("img.lazy").lazyload({ container: $("#container1") });

$("img.lazy").lazyload({ container: $("#container2") });