Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: image.onload nie działa prawidłowo
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
strike
Witam
Mam problem z obiektem image:


i = new Image();
i.onLoad = funkcja();
i.src = 'obrazek.jpg';


Potem w funkcja() robię podmianę tła w <div> ale zamiast przejść od razu do obrazek.jpg, tło znika i pojawia sie dopiero po chwili
Z tego co zrozumiałem obrazek,jpg powinien zostać ściągnięty do pamięci przeglądarki i natychmiastowo wyświetlony? Co jest nie tak?
kamil4u
Kod
i.onload = funkcja;
?
strike
nie chodzi o wielkość znaków
kamil4u
Tam nie tylko zmieniłem wielkość znaków. Przypatrz się uważniej smile.gif
strike
ok działa smile.gif Na drugi raz napisz w komentarzu coś więcej niż znak zapytania

Tylko jak przypisać przy takim zapisie funkcję z parametrem ?
Crozin
Cytat
Tylko jak przypisać przy takim zapisie funkcję z parametrem ?
[JAVASCRIPT] pobierz, plaintext
  1. i.onload = function() {
  2. function(arg1, arg2, arg3);
  3. };
[JAVASCRIPT] pobierz, plaintext
kamil4u
Cytat
Na drugi raz napisz w komentarzu coś więcej niż znak zapytania

A Ty uważniej patrz na kod smile.gif

W ramach "rekompensaty" napisze Ci dlaczego tak jest.
Mając tak jak miałeś wywołujesz funkcję, a Ty chcesz jedynie przypisać do niej referencję. Czyli nie używasz nawiasów. Są specyficzne przypadki, gdzie jest to akceptowalne, gdy np. funkcja zwraca inną funkcję( a dokładniej referencję do niej ). Trochę to zakręcone, ale mam nadzieję, że zrozumiałeś smile.gif

Metoda podana przez Crozina to tak zwane utworzenie funkcji anonimowej.
strike
Generalnie zmyliło mnie przypisanie do onclick i dlatego źle to robiłem

przycisk.onclick= function() { return funkcja();};
kamil4u
Cytat
przycisk.onclick= function() { return funkcja();};

Taka konstrukcja ma jeszcze inne zadanie - z reguły.

Mianowicie, gdy masz w HTML:
Kod
<a href="www.google.pl">test</a>


i teraz jeżeli przypiszesz taką funkcję do onclick-a:
Kod
przycisk.onclick= function() { return funkcja();};


To jeżeli funkcja zwróci true to link zadziała, a jeżeli false to link będzie nieaktywny( kliknięcie nie spowoduje przeniesienia na stronę - stad ten return )
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.