Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Ajax] Zmiana wysokości diva
Forum PHP.pl > Forum > XML, AJAX
jibay
Witam!
Mam problem ze zmianą wysokości diva po przeładowaniu strony z użyciem AJAX.

Oto moja funkcja:

  1. function showCategory(id) {
  2. $( ".result" ).load(ajax/test.php?id="+id);
  3. var winH = $(document).height();
  4. $('div#category_list').css('height', winH);
  5. }


Chciałbym, żeby div o id category_list, zmieniał wysokość razem z divem o klasie result po przeładowaniu w nim treści.

Proszę o pomoc : )
com
musiałbyś dodać tę zmianę kiedy ładowanie zakończy sie sukcesem, bo tak oba wątki wykonują sie niemal w jedym czasie, dlatego wysokość sie nie zmienia wink.gif w dokumetacji jest to tam opisane http://api.jquery.com/load/ smile.gif
jibay
Ja to zrozumiałem tak:
  1. function showCategory(id) {
  2. $( ".result" ).load("ajax/test.php?id="+id, makeSuper());
  3. }
  4. function makeSuper() {
  5. var winH = $(document).height();
  6. $('div#category_list').css('height', winH);
  7. }


Jednak dalej nie hula.

//Edit
Zmiana wysokości już działa, ale tylko na większą, nie spada w dół.
com
co nie spada w dół?
jibay
Jeśli załaduje się wyższa wysokość to później nie zmniejsza się tylko pozostaje puste miejsce na dole strony
com
no to sprawdź co zwraca winH, bo najprawdopodobniej wysokosc zmienia sie tylko raz wink.gif
jibay
Wg. mnie to wygląda tak, że ładuje się większa wysokość, więc ten DIV pozostaje już przy niej, ona się nie zmniejsza, więc może dałoby rade zamiast wysokości dokumentu jakoś "wyciągnąć" aktualną wysokość diva .result?
com
http://api.jquery.com/outerHeight/ Włąsnie to powiedziałem, że wykonuje te funkcje tylko raz, btw masz to w $(function() { ... });?
jibay

Kod :
  1. function showCategory(id) {
  2. $( ".result" ).load("ajax/test.php?id="+id, function() {
  3. var winH = $(document).height();
  4. $('div#category_list').css('height', winH);
  5. });
  6. }


Wykonuje się za każdym razem, jednak jeśli powiększę diva np do 1200px to przy następnym wczytaniu $(document).height(); znowu będzie to 1200px, Chyba, że po kliknięciu height zmieni się np na 100px, potem wykona się load() i na końcu zmiana wysokości na większą. Da rade tak?
com
to jescze raz zapytam wykonuesz to w document.read()? bo to najprawdopodobniej niczego nie da z tego względu iż długość ustala juz po załądowaniu tego div, ale nie wiem możesz spróbować dajac wysokosć przed łądowaniem, na te 100 px wink.gif bo tak mi sie teraz nasuwa takie pytanie że skoro div#category_list ma sie powiekszać to co jest wyznacznikem jego rozmiaru, bo może problem trkwi w tym iż bierze rozmiar dokumentu czyli całosc razem z resztą zawartości, a moze poprostu powinien brać rozmiar jakiejś sekcji tylko wink.gif
jibay
  1. function showCategory(id) {
  2. $('div#category_list').css('height', '600px');
  3. $( ".result" ).load("ajax/test.php?id="+id, function() {
  4. var winH = $(document).height();
  5. $('div#category_list').css('height', winH);
  6. });


Problem rozwiązany : ) Działa : ) Dziękuje
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.