• 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
106 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 (77,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 (77,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 Pasjonat (20,520 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 Pasjonat (20,520 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ź 167 wizyt
pytanie zadane 19 czerwca 2018 w JavaScript, jQuery, AJAX przez Wisien Nowicjusz (170 p.)
0 głosów
1 odpowiedź 103 wizyt
Porady nie od parady
Odznacz odpowiedź zieloną fajką, jeśli uważasz, że jest ona najlepsza ze wszystkich i umożliwiła ci rozwiązanie problemu.Najlepsza odpowiedź

62,438 zapytań

108,589 odpowiedzi

226,699 komentarzy

35,997 pasjonatów

Przeglądających: 63
Pasjonatów: 6 Gości: 57

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.

...