Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] wykonanie funkcji po wykonaniu poprzedniej
Forum PHP.pl > Forum > Przedszkole
The Night Shadow
  1. var przezroczystosc;
  2. var identyfikator;
  3. var ukryj;
  4. var kierunek;
  5.  
  6. function przeplot( i, id, ukrycie, strona )
  7. {
  8. przezroczystosc = i;
  9. identyfikator = id;
  10. ukryj = ukrycie;
  11. kierunek = strona;
  12.  
  13. if ( przezroczystosc > 0 )
  14. {
  15. getObj(identyfikator).style.opacity = przezroczystosc/100;
  16. getObj(identyfikator).style.filter = 'alpha(opacity=' + przezroczystosc + ')';
  17.  
  18. if ( kierunek == 1 )
  19. {
  20. przezroczystosc -= 2;
  21. }
  22. else
  23. {
  24. przezroczystosc += 2;
  25. }
  26.  
  27. setTimeout( "przeplot( przezroczystosc, identyfikator, ukryj, kierunek )", 10 )
  28. }
  29. else
  30. {
  31. if ( ukryj == 1 )
  32. {
  33. getObj(identyfikator).style.display = 'none';
  34. }
  35.  
  36. return true;
  37. }
  38. }


Powyższa funkcja odkrywa / ukrywa diva (odsłanianie / zasłanianie strony lub jej fragmentu).

  1. function wejscie()
  2. {
  3. menu();
  4. zmiana_dzialu( '' );
  5. statusy_uzytkownikow();
  6. }


Chciałbym, by zawartość powyższej funkcji wykonywana była dopiero wtedy, gdy div zostanie odkryty (przeroczystość 0.00). Jak to zrobić?

Chodzi mi o coś na zasadzie onSuccess w klasie advAJAX. Fakt jest to coś innego, ale efekt podobny.
drPayton
Nie napisałeś, jak i gdzie wywołujesz te funkcje. Metod jest sporo:
1. możesz przekazać zmienną przezroczystość do funkcji która ma się wywołać ale wykonanie ma nastąpić dopiero jak ta zmienna będzie miała określoną wartość (korzystasz wtedy z setInterval)
2. Możesz za pomocą metody call wywołać tą drugą funkcję w momencie jak pierwsza zwróci określoną wartość
3. Możesz wreszcie funkcję drugą umieścić w bloku typu on document ready (ta pierwsza poza nim) wtedy to co jest w tym bloku wykona się dopiero po zakończeniu wszystkiego innego
The Night Shadow
Możesz mi powiedzieć coś więcej na temat tego:

"2. Możesz za pomocą metody call wywołać tą drugą funkcję w momencie jak pierwsza zwróci określoną wartość"

? Szukałem w google i pod hasłem javascript call nie doszukałem się jakichś konkretów.


Drugie pytanie z trochę innej beczki. Czy jeśli mam jakąś funkcję i wywołuję ją w taki sposób:

wywolanie = new nazwa_funkcji(argument);

w jaki sposób wewnątrz tylko wywolania stworzyć setTimeout? Chodzi o to, że funkcja odkrywająca / ukrywająca jakieś elementy mogłaby być stosowana x razy dla róznych obiektów, a dokładniej x obiektów mogłoby się wyłaniać równocześnie.
drPayton
Znalazłem jeszcze coś ciekawego, co może się przydać: LINK, LINK2

Co do metody call: LINK
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.