Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Zmiana wysokości elementu na podstawie drugiego elementu
Forum PHP.pl > Forum > Przedszkole
-gecior-
Mam następujący kod jquery:


  1. $(function(){
  2.  
  3. $(".ksiazka_produkt:first-child").click( function() {
  4. var ksiazkaProduktHeight = $(this).height();
  5. $(this).parent().height(ksiazkaProduktHeight + 100).css("border", "1px solid red");
  6. });
  7. });


czym mogę zastąpić click(); aby rozmiar ksiazkaProduktHeight zmieniał się od razu po wczytaniu strony, a nie dopiero po kliknięciu?
turbiński
  1. $(document).ready(function() {
  2. var ksiazkaProduktHeight = $(".ksiazka_produkt:first-child").height();
  3. $(".ksiazka_produkt:first-child").parent().height(ksiazkaProduktHeight + 100).css("border", "1px solid red");
  4. });


Spróbuj coś takiego.
lobopol
[JAVASCRIPT] pobierz, plaintext
  1. var el = $(".ksiazka_produkt:first-child");
  2. var ksiazkaProduktHeight = el.height();
  3. el.parent().height(ksiazkaProduktHeight + 100).css("border", "1px solid red");
[JAVASCRIPT] pobierz, plaintext
-gecior-
Dzięki za odpowiedź. Chodzi jednak o to że .ksiazka_produkt może mieć różne wysokości. I w zależności od tych wysokości chciałbym aby element nadrzędny miał dodawaną wysokość o 100px więcej od danego .ksiązka produkt. Poniżej struktura html:

  1. <div class="ksiazki_linia">
  2. <div class="ksiazki_produkt" style="height:50px;"></div>
  3. </div>
  4.  
  5. <div class="ksiazki_linia">
  6. <div class="ksiazki_produkt" style="height:150px;"></div>
  7. </div>
turbiński
Cytat(-gecior- @ 20.10.2013, 19:31:24 ) *
Dzięki za odpowiedź. Chodzi jednak o to że .ksiazka_produkt może mieć różne wysokości. I w zależności od tych wysokości chciałbym aby element nadrzędny miał dodawaną wysokość o 100px więcej od danego .ksiązka produkt. Poniżej struktura html:

  1. <div class="ksiazki_linia">
  2. <div class="ksiazki_produkt" style="height:50px;"></div>
  3. </div>
  4.  
  5. <div class="ksiazki_linia">
  6. <div class="ksiazki_produkt" style="height:150px;"></div>
  7. </div>


Czy dobrze rozumiem? Masz dwie klasy, o tej samej nazwie, które zawierają klasy o tej samej nazwie i chcesz by .ksiazka_produkt z drugiej klasy miał wysokość o 100px większą od .ksiazka_produkt z klasy pierwszej?

Jeżeli dobrze rozumuje (a jest niedziela) to:

  1. <div id="ksiazki_linia">
  2. <div class="ksiazki_produkt" style="height:50px;"></div>
  3. </div>
  4.  
  5. <div id="ksiazki_linia_druga">
  6. <div class="ksiazki_produkt" style="height:150px;"></div>
  7. </div>


[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function() {
  2. var wysokosc = $(".ksiazki_linia:first").height(); //pobiera wysokosc pierwszego 'dziecka' div'a ksiazki_linia
  3. $(".ksiazki_linia_druga:first").css({"height", wysokosc + 100});
  4. });
[JAVASCRIPT] pobierz, plaintext
-gecior-
Dzięki panowie, ale w końcu problem rozwiązałem sam. Dokonałem modyfikacji w założeniach, ale cel jest identyczny. Mianowicie:

Kod JS:
  1. $(document).ready(function() {
  2.  
  3. window.onload = function() {
  4. var total_listing=jQuery(".lista .ksiazki_linia");
  5.  
  6. $(total_listing).each( function() {
  7.  
  8. var heightCell = $(this).children().eq(0).height();
  9.  
  10. $(this).height(heightCell + 20);
  11.  
  12. });
  13. };
  14.  
  15. });


Kod html:

  1. <div class="lista">
  2. <div class="ksiazki_linia">
  3. <div class="ksiazka_produkt" style="height:100px;">
  4. <img src="blabla.png" alt="" />
  5. </div>
  6. </div>
  7.  
  8. <div class="ksiazki_linia">
  9. <div class="ksiazka_produkt" style="height:200px;">
  10. <img src="blabla.png" alt="" />
  11. </div>
  12. </div>
  13. </div>
  14.  
  15. <div class="ksiazki_linia">
  16. <div class="ksiazka_produkt" style="height:300px;">
  17. <img src="blabla.png" alt="" />
  18. </div>
  19. </div>
-gecior-
BTW. Nie sprawdzałem podanego przez was kodu (przynajmniej części). Podany przez was kod nie iteruje oddzielnie każdego wiersza (.ksiazki_linia), a tak powinno być właśnie dzięki .each(); . (tak mi się wydaje - nie jestem guru wink.gif
turbiński
Cytat(-gecior- @ 20.10.2013, 21:23:12 ) *
BTW. Nie sprawdzałem podanego przez was kodu (przynajmniej części). Podany przez was kod nie iteruje oddzielnie każdego wiersza (.ksiazki_linia), a tak powinno być właśnie dzięki .each(); . (tak mi się wydaje - nie jestem guru ;)


Chyba jestem zbyt niedzielny bo dopiero teraz zrozumiałem co chciałeś osiągnąć. smile.gif

Dobrze, że znalazłeś rozwiązanie.
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.