• 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 ?

VPS Starter Arubacloud
0 głosów
366 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 178 wizyt
pytanie zadane 24 stycznia 2017 w JavaScript przez niezalogowany
0 głosów
1 odpowiedź 642 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,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...