Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][jquery] Problem z (hide)
Forum PHP.pl > Forum > Przedszkole
zanst
Dopiero zacząłem uczyć się jQuery i z pewnością to banalny problem, niemniej jednak chciałbym zrozumieć czemu to działa źle. Mam taki oto kod:
HTML:
  1. <div id="guzik">Menu</div>
  2. <div style="width: 100px; height: 100px; background-color: red;" class="menu"></div>
  3.  
  4. </body>


jQuery:
  1. $(function(){
  2. $('.menu').hide();
  3.  
  4. $('#guzik').click(function(){
  5. $('.menu').show();
  6. $('#guzik').addClass('showed');
  7. });
  8. $('#guzik.showed').click(function() {
  9. $('.menu').hide();
  10. $('#guzik.showed').removeClass('showed');
  11. }) ;
  12.  
  13.  
  14. }
  15. );


Po kliknięciu na napis Menu ma się pokazać czerwony kwadrat - pokazuje się. Po ponownym kliknięciu na napis Menu kwadrat ma się chować - nie działa, zostaje na ekranie. Co jest nie tak?
nospor
$('#guzik.showed').click(function() - ten kod odpala sie gdy guzik nie ma jeszcze klasy showed wiec sie nie lapie do twojej reguly.
Zainteresuj sie ON
trueblue
Podpiąłeś zdarzenie click do elementu kiedy jeszcze nie ma klasy showed.
Obsługa zdarzenia ma być jedna, a w niej sprawdzenie czy element ma klasę, nadanie/usunięcie klasy oraz schowanie/pokazanie elementu.
nospor
ps: a czemu w ogole nie zrobisz poprostu toggle?

$('#guzik').click(function(){
$('.menu').toggle();
});

I juz
zanst
Dzięki za pomoc. Toggle() nie użyłem bo go do tej pory nie znałem - po prostu uczę się z książki i chciałem spróbować już coś zrobić z tego co jest na jej początku. Teraz przeczytam ją do końca i wtedy będę próbował coś pisac smile.gif.
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.