Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jquery] load() nie działa
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
rafalpielecha
mam funkcje:

  1. function wczytywanie_do_okna(zmienna)
  2. {
  3. $("#loader").show();
  4. var zmienne_okna = 'zmienna_okna='+zmienna;
  5. $.ajax({
  6. type: 'POST',
  7. url: 'okno.php',
  8. data: zmienne_okna,
  9. success: function(data) {
  10. $('#div_okno').html(data);
  11. }
  12. });
  13. }


#loader to warstwa, która ma przysłaniać wszystko zanim nie załaduje się żądana zawartość #div_okno
chciałbym, żeby ta warstwa (#loader) znikała po załadowaniu okna
i robię to wstawiając w pliku okno.php:

  1. $(window).load(function(){
  2. $("#loader").hide();
  3. });


i niestety to nie działa

działa:
  1. $(document).ready(function(){
  2. $("#loader").hide();
  3. });

ale to ukrywa warstwę #loader zanim załadują się obrazki.

gdzie popełniłem błąd
krowal
Pobierasz wszystkie obrazki ze strony przez $('img') zliczasz ile ich jest, i dodajesz im funkcję do eventu load która zmniejsza licznik, gdy licznik zejdzie do zera możesz schować loader. Obrazki są ładowane jakby oddzielnie niż cały DOM i dlatego trzeba je traktować osobno.
matird
Nie prościej po prostu dorzucić do zdarzenia success ajaxa (tam już kod wykonywany jest synchronicznie), żeby ustawił hide() elementu ?
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.