Mam sobie liste img np:
<div class="box"> <div class="inside zdjeciaPoziom"> <ul class="zdjecia_pokaz"> <li> <a href="http://yamahafjr.najlepsza.pl/kohana3/www/images/photography/foto/waterfall.jpg" > <img alt="waterfall.jpg" src="http://yamahafjr.najlepsza.pl/kohana3/www/images/photography/foto_m/waterfall.jpg" class="foto_gallery"/> </a> </li> <li> <a href="http://yamahafjr.najlepsza.pl/kohana3/www/images/photography/foto/autumn_leaves.jpg" > <img alt="autumn_leaves.jpg" src="http://yamahafjr.najlepsza.pl/kohana3/www/images/photography/foto_m/autumn_leaves.jpg" class="foto_gallery" /> </a> </li> <li> <a href="http://yamahafjr.najlepsza.pl/kohana3/www/images/photography/foto/creek.jpg" > <img alt="creek.jpg" src="http://yamahafjr.najlepsza.pl/kohana3/www/images/photography/foto_m/creek.jpg" class="foto_gallery" /> </a> </li> <li> <a href="http://yamahafjr.najlepsza.pl/kohana3/www/images/photography/foto/desert_landscape.jpg" > <img alt="desert_landscape.jpg" src="http://yamahafjr.najlepsza.pl/kohana3/www/images/photography/foto_m/desert_landscape.jpg" class="foto_gallery" /> </a> </li> </ul> </div> </div>
I teraz w js poniżej mam:
widthZdjeciaPoziom = 0; widthZdjeciaPoziom += $(this).attr('width') + 2; }); $('.zdjeciaPoziom ul').css('width', widthZdjeciaPoziom);
Kod ten zlicza mi po załadowaniu zdjęć ich szerokość całkowita plus marginesy i ustawia jak style inline.
Wszystko ok działa - jak odświeżam F5, ctrl+F5 ale się mechanizm źle zlicza jak odświeżę ctrl+F5 - czyli czyszcząc cache przeglądarki dla tej podstrony.
Wówczas nie wiadomo czemu źle się oblicza szerokość i np zamiast 1400 oblicza 416.
Domyślam się że to jest związane z tym że zdjęcia sie wszystkie nie zdążyły załadować a już funkcja sie wykonała. Jednak użycie funkcji $(document).ready(function (){..... tez nic nie dało.
Podpowiedzcie co by trzeba było zrobić - zmienić w tym kodzie by zawsze niezależnie jak odświeżam stronie i ile jest obrazków czy 3, 4, 40 dobrze mi obliczał ta szerokość ogólna.