Při načtení snippetu ajaxem nefunguje lazy load

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
t0x1c
Člen | 151
+
0
-

Čau chci se zeptat. Dal jsem si na web lazy load img. Když udělam filtraci pomoci ajaxu a reloadne se snippet tak mi lazy load nefunguje a obrazky se vubec nenačtou. Musím nějak reloadnout i DOM?

Majkl578
Moderator | 1364
+
0
-

Co je lazy load img? Dost možná to bude nedostatek JS knihovny (např. nepoužívá $(...).on(...)), spíš než problém snippetů.

t0x1c
Člen | 151
+
0
-

No to je že to načíta obrázky později a ne hned když scroluješ dolů. Ono to prostě funguje když načtu stranku ale pak když použiju handle přes ajax k vyfiltrování položek tak už to nejde. BTW: je to tenhle plugin http://www.appelsiini.net/…cts/lazyload

Etch
Člen | 403
+
0
-

@t0x1c:

To podle mě není vůbec problém Nette, ale klasický problém toho, že na věci natáhnuté pomocí AJAXu se ti prostě nenabinduje $("img.lazy").lazyload();

Majkl578
Moderator | 1364
+
0
-

To rozhodně není problém Nette, nýbrž té knihovny. Problém je přesně v tom, co zmiňuje Etch – $("img.lazy").lazyload() se provede pouze při document ready, nikoliv při aktualizaci snippetu.
Mohl bys při aktualizaci snippetu v success callbacku zkusit volat znova inicializaci, pak by to mohlo fungovat.

mkoubik
Člen | 728
+
0
-

Jak ten lazy load inicializuješ? $('img.lazy').lazyload() se aplikuje jen na obrázky co jsou aktuálně v DOMu. Pokud to chceš průběžně aplikovat na donačítané obrázky, použij livequery:

$('img.lazy').livequery(function() {
	$(this).lazyload();
});