Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]kolejność wykonywania funcji w JS
Forum PHP.pl > Forum > Przedszkole
Odoakr
Czołem.

Mam funkcję, której mode; jest poniżej.

  1. function foo() {
  2.  
  3. zapytanieAjaxZwracająceHtml(); // funkcja pobiera kod HTML i wrzuca go w odpowiedni div
  4. zmianaCzcionkiZwróconegoTerkstuHTML(); // chcę zmienić czcionkę przed chwilą dodanego tekstu używając cufon.
  5. }


Problem polega na tym, że pobieranie HTML i wrzucanie go do div trwa ok 200ms. W tym czasie, zanim zostanie załadowany tekst, wykona się skrypt zmiany czcionki, który oczywiście nie zrobi nic, bo tejstu jeszcze nie ma.
Pytanie. Jak uświadomić druga fuknkcję, żeby wykonała się dopiero po załadowaniu tekstu?
-fate-
Moze zdarzenie onload?
!*!
[JAVASCRIPT] pobierz, plaintext
  1. var x = 0;
  2.  
  3. function x
  4. {
  5. x = 1;
  6. }
  7.  
  8. funcrion y
  9. {
  10. if(x==1)
  11. }
[JAVASCRIPT] pobierz, plaintext
Fifi209
Przeczytaj o callback
Odoakr
@ -fate- onload odpada, bo z tego co wiem to dotyczy całej strony, a nie konkretnego div.
@ !*! odbada bo zanim funkcja x zmieni zmienna globalną to funkcja y się wykona. Kluczem do problemu jest czas
@ Fifi209. Callback brzmi obiecująco... ogarnę je trochę bardziej
Dominator
Może spróbuj delay()
!*!
Bo to tylko prymitywny przykład był
[JAVASCRIPT] pobierz, plaintext
  1. var x = 0;
  2. function x
  3. {
  4. x = 1; // gdy skończysz i sprawdź czy aby na pewno.
  5. }
  6.  
  7. if(x==1)
  8. {
  9. funcrion y
  10. {
  11.  
  12. }
  13. }
[JAVASCRIPT] pobierz, plaintext


Użyj jQuery, tam jest to dobrze rozwiązane i masz pewność że zadziała.
sh3d2
[JAVASCRIPT] pobierz, plaintext
  1. $.get('twoj_url', function(data){
  2. // tutaj masz swoj html jako obiekt data
  3. // robisz co chcesz zrobic, a potem
  4. $('#twoj_div').html(data)
  5. })
[JAVASCRIPT] pobierz, plaintext


oczywiscie wymaga jquery
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.