Używam JavaScript z biblioteką jQuery do manipulowania miniaturami obrazów zawartymi na nieuporządkowanej liście. Po załadowaniu obrazu robi jedną rzecz, a gdy pojawia się błąd, robi coś innego. Używam jQuery load()
i error()
metod jako zdarzeń. Po tych zdarzeniach sprawdzam element DOM obrazu dla .complete, aby upewnić się, że obraz nie został już załadowany, zanim jQuery nie będzie mogło zarejestrować zdarzeń.
Działa poprawnie, chyba że wystąpi błąd, zanim jQuery może zarejestrować zdarzenia. Jedyne rozwiązanie, jakie mogę wymyślić, to użyć onerror
atrybutu img do przechowywania „flagi” gdzieś globalnie (lub w węźle, który jest sam), który mówi, że się nie udało, więc jQuery może sprawdzić ten „sklep / węzeł” podczas sprawdzania .complete.
Czy ktoś ma lepsze rozwiązanie?
Edycja: Pogrubione główne punkty i dodatkowe szczegóły poniżej: Sprawdzam, czy obraz jest kompletny (aka załadowany) PO dodaniu do obrazu zdarzenia obciążenia i błędu. W ten sposób, jeśli obraz zostanie załadowany przed zarejestrowaniem zdarzeń, nadal będę wiedział. Jeśli obraz nie zostanie załadowany po zdarzeniach, wydarzenia się nim zajmą. Problem polega na tym, że mogę łatwo sprawdzić, czy obraz jest już załadowany, ale nie wiem, czy zamiast tego wystąpił błąd.