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

0 głosów
123 wizyt
pytanie zadane 13 września 2018 w JavaScript, jQuery, AJAX przez izonik Stary wyjadacz (12,640 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 JSHolic Szeryf (78,620 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 JSHolic Szeryf (78,620 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 (26,500 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,640 p.)

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

this

.

komentarz 14 września 2018 przez Tpk Nałogowiec (26,500 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 64 wizyt
0 głosów
1 odpowiedź 186 wizyt
pytanie zadane 19 czerwca 2018 w JavaScript, jQuery, AJAX przez Wisien Nowicjusz (170 p.)
0 głosów
1 odpowiedź 106 wizyt
Porady nie od parady
Komentarze do pytań nie służą do odpowiadania, od tego jest wydzielona sekcja odpowiedzi. Funkcją komentarzy jest natomiast możliwość uzyskania dodatkowych informacji na temat samego posta.Komentarze

64,791 zapytań

111,249 odpowiedzi

233,951 komentarzy

46,683 pasjonatów

Przeglądających: 196
Pasjonatów: 8 Gości: 188

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...