load dla img w operze/ie

0

Czy jest jakas dobra dusza która wytlumaczy mi dlaczego tak się dzieje i jak to naprawić? w Firefoxie i Safari skrypt sie wykonuje, Opera i IE jakby ignorowaly w ogole funkcje 'load' ktora staram sie wykonac dla dynamicznie utworzonych . jest to dla mnie istotne ponieważ dokładnie po zaladowaniu wszystkich img chciałbym zeby została wykonana inna czynność(ukryć div 'ladowania').
załaczam cały kod, obrazujący dany przykład, aczkolwiek moim zdaniem problem tkwi w funkcji load ktora znajduje sie w "stworz_obiekt_zdjecia".
http://www.sendspace.com/file/lw9ikt

bardzo prosze o jakies wskazówki..

0

Robiłem 3 podejścia do tego projektu, ale formatowanie kodu masz tak [oszczędzę], że za każdym razem mnie odrzuciło po max. minucie. Postaraj się plz jakoś to ogarnąć -- dla samego siebie, niekoniecznie dla nas. Wcinaj bloki o jedno wcięcie -- jeden TAB lub kilka (zawsze tyle samo) spacji. No zobacz, to wycinek z tego kodu -- ten, który sprawia problemy [tabulatory zostały zamienione na spacje]:

function stworz_obiekt_zdjecia(nr, adresy, s, ss) {
	var zdj = $(document.createElement('img')).hide();
	zdj.attr({ src: adresy[nr] });
	zdj.load(function() { alert('a'); //jezeli wylaczymy te linie oraz..
    zdj.attr({ rel: nr }).addClass("fota").appendTo($(s[ss]));
	zdj.show("clip", { direction: "horizontal", easing: "easeOutCirc" }, 1000, function()
																						{
																							if( nr == adresy.length-1) { $('.load').fadeOut('slow'); }
																						});
  }); //.. te linie, to skrypt zadziala poprawnie pod kazda przegladarka, oczywiscie nie bedzie wtedy ladowania zdjec.. jednak wskazuje to na to gdzie znajduje sie problem.
	
	return zdj;
	
}

WTF? Jedną linijkę wcinasz o 4 spacje, następną o tabulator, a kolejną o... 22 tabulatory (!). Gdzieniegdzie wcięcia brakuje, gdzie indziej brakuje przejść do nowej linii. Nie będę się rozwodził nad zasadami tworzenia czytelnego kodu (nawet podstawowymi w stylu DRY), bo trudno jest je ogarnąć i stosować w praktyce. Wymaga to pewnego doświadczenia. Ale brak porządnego formatowania świadczy chyba tylko o lenistwie autora.

Co śmieszniejsze, u mnie w Operze po kliknięciu na "GALERIA", a potem na "galeria 1", wszystko się chyba wyświetla. Łącznie z alertami w load. Używam najnowszej Opery (10.53).

PS. Sorry za to marudzenie, ale chcę Cię zagonić do zwrócenia uwagi na formatowanie kodu. Piszesz już złożone skrypty, a to oznacza dwie rzeczy. Po pierwsze, brak porządnego formatowania bardziej da Ci się we znaki. Po drugie, nie jesteś już noobem i nie masz taryfy ulgowej, bo na pewno sformatowanie kodu nie jest dla Ciebie ogromnym wyzwaniem.

0

zabiłeś mnie tym.. i to nie krytyka odnośnie nieprzyjemnego kodu, a tym ze wystarczyła aktualizacja opery... normlanie, aż mi wstyd, że narobiłem tyle szumu, a tu taka oczywista oczywistość... tak czy inaczej, znów mi pomogłes :)

co do kodu.. nie nie, nie marudzisz mi :) masz niestety racje, ale jest to wynik tego, że skrypt js był początkowo pisany w <head> pliku html, a tam dreamweaver nie robi wcięć, tak jak to robi w plikach js, wiec robiłem je samodzielnie. a potem przy kopiowaniu skryptu z testowego pliku html do właściwego pliku js, dreamweaver porozrzucał w zupełnie inny sposób, dlatego pisałem, iż jest tam spory burdel, którym dopiero się zajmę, czas mnie goni dlatego muszę zostawić to na potem. zdaję sobie sprawę ile znaczy w programowaniu estetyka, więc jeżeli będe musiał wrócić kiedyś do tego skryptu, w obecnym stanie, zapewne nic nie znajdę i wolałbym go napisać od nowa ^^ także w porzadku, obiecuje posprzątać :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1