Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js]Menu rozwijane
Forum PHP.pl > Forum > Przedszkole
Glarden
Napisałem sobie skrypt w js do rozwijanego menu. I teraz tak. Można by powiedzieć, że wszystko działa jak należy, jest tylko jeden szkopuł: po wejściu na stronę, żeby menu się rozwinęło na odnośnik trzeba kliknąć dwa razy. Nie wiem, dlaczego?
plik html:
  1. <ul>
  2. <li><a href="java script:pokaz('kupa');">Kliknij, a zobaczysz</a></li>
  3. <ul id='kupa'>
  4. <li><a href='http://onet.pl'>Onet</a></li>
  5. <li><a href='http://wp.pl'>WP</a></li>
  6. </ul>
  7. <li><a href="java script:pokaz('tit');">Druga lista</a></li>
  8. <ul id='tit'>
  9. <li><a href='http://krowa.pl'>Gulgul</a></li>
  10. <li><a href='http://forum.php.pl'>Forum PHP</a></li>
  11. </ul>
  12. </ul>

plik js:
  1. function pokaz (id) {
  2. el = document.getElementById(id)
  3. if (el.style.display == "none") {
  4. el.style.display = "block";
  5. }
  6. else {
  7. el.style.display = "none";
  8. }
  9. }
nospor
Widzę, ze początkową widoczność menu nie ustalasz w html, wiec zapewne robisz to w css. Jesli tak, to style.display w js na początku nie bedzie mialo "none". A ty niestety przez to "none" warunkujesz czy wyswietlic czy nie. Tak wiec pierwsze klikniecie dopiero ustawia "none" przez co nadal jest niewidoczny, a dopiero drugie klikniecie dostaje poprawne warunki.

Zmien moze warunek z:
if (el.style.display == "none")
na:
if (el.style.display != "block")
Glarden
Tak, robiłem to w CSS.
Wielkie dzięki, teraz już działa.
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.