• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Java Script. Jak użyć zmiennych w funkcji przekazanej do addEventListener ?

Object Storage Arubacloud
0 głosów
367 wizyt
pytanie zadane 13 września 2018 w JavaScript przez izonik Stary wyjadacz (12,560 p.)
edycja 13 września 2018 przez izonik

Dzień Dobry.

 

Więc tak, chcę użyć zmiennych z pętli for w funkcji przekazanej do addEventListener. Otrzymuję błąd 

TypeError: hint[i] is undefined

Więc w jaki sposób użyć tych pól w funkcji.

 

Oto kod:

var hint = [];
// Example value in hint
hint.push(document.querySelector("#move"));
// ...


for(var i = 0; i < hint.length; i++){
    
    // ...

    hint[i].addEventListener('click', function(){
        hint[i].style.display = "none";
        document.cookie = hint[i].id + "=not_available";
    });
};

 

Z góry dziękuję za wszelkie wskazówki.

 

[EDIT] Dodałem przykładową wartość tablicy.

komentarz 13 września 2018 przez ScriptyChris Mędrzec (190,190 p.)

Czegoś brakuje w pokazanym kodzie, ponieważ tablica hint jest pusta, a zatem pętla for nie wykona żadnej iteracji.

komentarz 13 września 2018 przez ScriptyChris Mędrzec (190,190 p.)

[EDIT] Dodałem przykładową wartość tablicy.

Mogłeś napisać to w komentarzu.

Której linijki dotyczy ten błąd? Czy możesz zobaczyć w konsoli zawartość tablicy hint i aktualny indeks (i) zanim wykonasz kod generujący błąd?

1 odpowiedź

0 głosów
odpowiedź 13 września 2018 przez Tpk Nałogowiec (40,100 p.)
wybrane 14 września 2018 przez izonik
 
Najlepsza
Zamiast dodawać wyciągnięty z DOM'a element do tablicy dodaj tylko nazwę elementu a wyciągaj (document.querySelector) wewnątrz pętli i powinno być ok.

https://codepen.io/r0v/pen/RYJgqG
1
komentarz 14 września 2018 przez izonik Stary wyjadacz (12,560 p.)

Nie trzeba zmieniać, tego co jest dodawane do listy. Wystarczyło użycie

this

.

komentarz 14 września 2018 przez Tpk Nałogowiec (40,100 p.)

Właściwie tak, choć z początku też nie chciało mi to chodzić ale faktycznie problemem może być this (które dodałem właściwie po to aby uprościć kod)

Podobne pytania

0 głosów
0 odpowiedzi 190 wizyt
pytanie zadane 24 stycznia 2017 w JavaScript przez niezalogowany
0 głosów
1 odpowiedź 645 wizyt
pytanie zadane 19 czerwca 2018 w JavaScript przez Wisien Nowicjusz (200 p.)
0 głosów
1 odpowiedź 218 wizyt
pytanie zadane 20 marca 2018 w JavaScript przez OdsetekGlupoty Pasjonat (15,360 p.)

92,555 zapytań

141,402 odpowiedzi

319,545 komentarzy

61,939 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...