Jak obsłużyć event dla kilku elementów
Jak obsłużyć event dla kilku elementów
Witam,
mam taki problem że chciałbym obsłużyć klikanie w kilka elementów i żeby dla każdego odpaliło się to samo zdarzenie.
Gdy kliknę na nagłówek obojętnie który, to ma zniknąć jego sąsiedni div.
Moja próba rozwiązania tego: https://jsfiddle.net/8fhcs0o7/5/
Kiedyś udało mi się coś takiego osiągnąć ale nie pamiętam jak to zrobiłem i za nic nie mogę sobie przypomnieć.
Proszę o pomoc lub wskazówkę.
Pozdrawiam
mam taki problem że chciałbym obsłużyć klikanie w kilka elementów i żeby dla każdego odpaliło się to samo zdarzenie.
Gdy kliknę na nagłówek obojętnie który, to ma zniknąć jego sąsiedni div.
Moja próba rozwiązania tego: https://jsfiddle.net/8fhcs0o7/5/
Kiedyś udało mi się coś takiego osiągnąć ale nie pamiętam jak to zrobiłem i za nic nie mogę sobie przypomnieć.
Proszę o pomoc lub wskazówkę.
Pozdrawiam
Re: Jak obsłużyć event dla kilku elementów
Hej,
W zmiennej headings masz tablicę, a nie poj. zmienną. Przejdź przy pomocy po wszystkich elementach tablicy i będzie ok
Pozdrawiam,
Arek
W zmiennej headings masz tablicę, a nie poj. zmienną. Przejdź przy pomocy po wszystkich elementach tablicy i będzie ok

Pozdrawiam,
Arek
Re: Jak obsłużyć event dla kilku elementów
Udało mi się osiągnąć to co chciałem dzięki Twojej wskazówce:
https://jsfiddle.net/1xtmt92e/2/
W pętli for te przypisanie eventu działa tak że parser przeleci przez kod i przypisze każdemu elementowi z tablicy ten event? Myślałem że to nasłuchiwanie dzieje się w czasie rzeczywistym i że nie można go przypisać i on już zostanie z elementem na stałe
Po drugie tego if'a napisałem metodą prób i błędów bo nie za bardzo rozumiem jego logikę, chyba tu coś działa inaczej ze względu na nasłuchiwacz w tym if'e? Gdyby nie klikanie w element ten if wyglądałby inaczej prawda?
https://jsfiddle.net/1xtmt92e/2/
W pętli for te przypisanie eventu działa tak że parser przeleci przez kod i przypisze każdemu elementowi z tablicy ten event? Myślałem że to nasłuchiwanie dzieje się w czasie rzeczywistym i że nie można go przypisać i on już zostanie z elementem na stałe

Po drugie tego if'a napisałem metodą prób i błędów bo nie za bardzo rozumiem jego logikę, chyba tu coś działa inaczej ze względu na nasłuchiwacz w tym if'e? Gdyby nie klikanie w element ten if wyglądałby inaczej prawda?
Re: Jak obsłużyć event dla kilku elementów
Bo on zostanie z elementem na stałe
Jak się wczyta strona to dodasz event dla wszystkich elementów.
Nie powinieneś usuwać całej klasy, a wyłącznie tylko część class :-) pokombinuj z substring :-)

Nie powinieneś usuwać całej klasy, a wyłącznie tylko część class :-) pokombinuj z substring :-)
Re: Jak obsłużyć event dla kilku elementów
Czemu usuwanie całej klasy jest złe?
Lepiej zastosować:
?

Lepiej zastosować:
Code: Zaznacz cały
if(this.nextElementSibling.className == ""){
this.nextElementSibling.className = "ukryty";
} else {
this.nextElementSibling.className = "";
}
Re: Jak obsłużyć event dla kilku elementów
className też jest złe. Zastanów się co by się stało jeśli ten element miałby jakieś inne klasy, które nadawałaby wygląd temu elementowi? 

Re: Jak obsłużyć event dla kilku elementów
Teraz jest ok
Z klasami też możesz to zrobić, tylko wtedy musisz pamiętać o tym aby usunąć część 'stringa' do tego służą metody z lekcji 50 

