Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript] Pokazywanie/ukrywanie elementu
!*!
post 24.11.2010, 13:08:12
Post #1





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Może mi ktoś wyjaśnić dlaczego ten motyw nie działa:

  1. <div id="bodydiv">
  2. <aside>aside</aside>
  3. <nav>nav</nav>
  4. </div>
  5. <div id="info">info</div>


[JAVASCRIPT] pobierz, plaintext
  1. function showHide(){
  2. if(document.getElementById("bodydiv").getElementsByTagName("nav")[0].style.display == 'block'){
  3. document.getElementById("info").innerHTML = 'tak';
  4. }else{
  5. document.getElementById("info").innerHTML = 'nie';
  6. }
  7. }
[JAVASCRIPT] pobierz, plaintext


Za każdym razem pokazuje się "nie", dlaczego? W css mam nadany atrybut "display:block" dla tych elementów.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
flashdev
post 24.11.2010, 13:11:08
Post #2





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


Kod
function showHide(){
if(document.getElementById("bodydiv").getElementsByTagName("nav")[0].style.display == 'block'){
document.getElementById("info").innerHTML = 'tak';
document.getElementById("bodydiv").getElementsByTagName("nav")[0].style.display == 'none';
}else{
document.getElementById("info").innerHTML = 'nie';
document.getElementById("bodydiv").getElementsByTagName("nav")[0].style.display == 'block'
}
}


Zgaduję, że brakuje tych dwóch linijek.


--------------------
Go to the top of the page
+Quote Post
!*!
post 24.11.2010, 13:20:11
Post #3





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Nie zgadłeś. Nadal wyświetla się "nie". Chce po prostu sprawdzić jaką nav ma wartość.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
flashdev
post 24.11.2010, 13:43:32
Post #4





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


Skrypt działa jak należy. Wyświetla się 'nie', ponieważ <nav> ma stale ustwiony widok 'block'.


--------------------
Go to the top of the page
+Quote Post
Echonik
post 24.11.2010, 15:15:57
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 1
Dołączył: 19.05.2010

Ostrzeżenie: (0%)
-----


Z ciekawości sprawdziłem ten problem i...
  1. <style type="text/css">
  2. aside {display: block;}
  3.  
  4. <script language="javascript">
  5. function show(tagName)
  6. {
  7. alert(tagName + ".style.display=" +document.getElementsByTagName(tagName)[0].style.display);
  8. }
  9. </head>
  10.  
  11. <div>
  12. <aside>tekst aside</aside>
  13. <button onclick="show('aside')">Get property aside</button>
  14. </div>
  15.  
  16. <div>
  17. <nav style="display: block;"> tekst nav</nav>
  18. <button onclick="show('nav')">Get property nav</button>
  19. </div>
  20. </body>
  21. </html>


.. u mnie jest tak, że po kliknięciu na:
- "Get property aside" jest pusta wartość,
- "Get property nav" wartość jako block
Go to the top of the page
+Quote Post
!*!
post 24.11.2010, 15:35:45
Post #6





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


flashdev - To w tym Twoim przykładzie powinien się schować, i wyświetlić "nie", jak kliknę raz jeszcze, to powinien się wyświetlić i pokazać "tak", a tak nie jest.

Edycja:
Ok, już wiem gdzie był błąd.

[JAVASCRIPT] pobierz, plaintext
  1. function showHide(){
  2. if(document.getElementById("bodydiv").getElementsByTagName("aside")[0].style.display == 'block'){
  3. document.getElementById("con").innerHTML = 'tak';
  4. document.getElementById("bodydiv").getElementsByTagName("aside")[0].style.display = 'none';
  5. }else{
  6. document.getElementById("con").innerHTML = 'nie';
  7. document.getElementById("bodydiv").getElementsByTagName("aside")[0].style.display = 'block'
  8. }
  9. }
[JAVASCRIPT] pobierz, plaintext


Chodziło o znak porównania "==" i określenia wartości "=".

Ten post edytował !*! 24.11.2010, 15:36:38


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.07.2025 - 10:15