Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jquery] podwójne wysokości w innerHeight()
Forum PHP.pl > Forum > XML, AJAX
lamcpp
Witam oto przykład:
plik html:
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <head>
  3. <meta http-equiv="content-type" content="text/html; charset=utf-8">
  4. <script src="jquery.js"></script>
  5. <script src="selektory.js"></script>
  6. <style type="text/css">
  7. #pierwszy, #drugi, #trzeci{
  8. margin: 5px;
  9. border: 3px solid red;
  10. padding: 10px;
  11.  
  12. }
  13. #drugi{
  14. margin: 5px;
  15. border: 3px solid red;
  16. padding: 15px;
  17. }
  18. #trzeci{
  19. margin: 5px;
  20. border: 3px solid red;
  21. padding: 20px;
  22. }
  23. </style>
  24. </head>
  25. <body>
  26. <div id="pierwszy"></div>
  27. <div id="drugi"></div>
  28. <div id="trzeci"></div>
  29. </body>
  30. </html>


plik js:
  1. $(document).ready(function(){
  2. $("div").click(function(){
  3. $(this).text("Wys." + $(this).innerHeight());
  4. });
  5. });


Z założenia w każdym z div ma być wyświetlana jego wysokość wewnętrzna (innerHeight()). Wysokość się pojawia po kliknięciu, ale gdy kliknę na to samo drugi raz pojawia się inna wysokość, skąd ona się bierze i dlaczego tak jest? Oraz prośba jak przerobić ten skrypt, żeby pokazywał wysokość elementów od razu, bez potrzeby kliknięcia na element?
devbazy
Na początku ten konkretny blok (ze schowanym tekstem) ma wysokość równą "30" (przypuszczalnie) - po kliknięciu dostajesz akurat tą wartość. Za drugim razem otrzymujesz wartość wraz z tekstem znajdującym się w obszarze tego elementu czyli np. "45". Wyświetl sobie tą informacje o wysokości poza blokiem, to zauważysz różnicę.

Po małej modyfikacji taki kod może wyglądać tak:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <head>
  3. <meta http-equiv="content-type" content="text/html; charset=utf-8">
  4. <script src="jquery.js"></script>
  5. <script src="selektory.js"></script>
  6. <style type="text/css">
  7. #pierwszy, #drugi, #trzeci{
  8. margin: 5px;
  9. border: 3px solid red;
  10. padding: 10px;
  11.  
  12. }
  13. #drugi{
  14. margin: 5px;
  15. border: 3px solid red;
  16. padding: 15px;
  17. }
  18. #trzeci{
  19. margin: 5px;
  20. border: 3px solid red;
  21. padding: 20px;
  22. }
  23. </style>
  24. </head>
  25. <body>
  26. <div id="pierwszy"></div>
  27. <div id="drugi"></div>
  28. <div id="trzeci"></div>
  29. <div id="info"></div>
  30. </body>
  31. </html>


[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function(){
  2.  
  3. var div1 = $("#pierwszy").innerHeight();
  4. var div2 = $("#drugi").innerHeight();
  5. var div3 = $("#trzeci").innerHeight();
  6.  
  7. $("#info").append("Wys. " + div1 + " | " + div2 + " | " +div3);
  8.  
  9. });
[JAVASCRIPT] pobierz, plaintext


P.S: Dostępny jest tag "JavaScript".
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.