Strona 1 z 1
Jak obsłużyć event dla kilku elementów
Napisane: wtorek, 12 lipca 2016, 21:27
przez mario88
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
Re: Jak obsłużyć event dla kilku elementów
Napisane: wtorek, 12 lipca 2016, 22:25
przez Morfidon
Hej,
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
Napisane: środa, 13 lipca 2016, 00:04
przez mario88
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?
Re: Jak obsłużyć event dla kilku elementów
Napisane: środa, 13 lipca 2016, 00:40
przez Morfidon
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 :-)
Re: Jak obsłużyć event dla kilku elementów
Napisane: środa, 13 lipca 2016, 05:05
przez mario88
Czemu usuwanie całej klasy jest złe?
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
Napisane: środa, 13 lipca 2016, 12:44
przez Morfidon
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
Napisane: środa, 13 lipca 2016, 18:26
przez mario88
A coś takiego?
https://jsfiddle.net/1xtmt92e/4/
Teraz klas nie rusza

Re: Jak obsłużyć event dla kilku elementów
Napisane: środa, 13 lipca 2016, 18:58
przez Morfidon
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
