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

nawigacja vanilla js

0 głosów
434 wizyt
pytanie zadane 3 września 2017 w JavaScript przez pysilla Użytkownik (560 p.)

Dopiero zaczynam z js. Chciałam żeby wyświetlały się pozycje menu po kliknięciu w ikonkę menu. Wydawało mi się proste, ale coś jednak nie gra. Próbowałam zrobić na dwa sposoby, obydwa tu zamieszczam.

Konsola wypluwa mi coś takiego: "menuIcon.addEventListener is not a function".

Pewnie to moje luki w wiedzy, będę wdzięczna za wskazówki.

Próba 1

Próba2

 

 

 

1 odpowiedź

0 głosów
odpowiedź 3 września 2017 przez zgrybus Pasjonat (24,860 p.)
edycja 4 września 2017 przez zgrybus
 
Najlepsza

zmień kod JS na ten 

var menuIcon = document.getElementsByClassName('menu-icon');
var nav = document.getElementsByClassName('nav')[0];
[...menuIcon].forEach(menu => {
  menu.addEventListener('click', function(){
    if (nav.style.display == 'none'){
      nav.style.display = 'block';
    }
    else {
      nav.style.display = 'none';}
  });
})

 

A dlatego wywalało addEventListener is not a function, ponieważ getElementsByClassName zwraca coś a'la HTMLCollection. 

komentarz 3 września 2017 przez pysilla Użytkownik (560 p.)

Dziękuję bardzo! W międzyczasie znalazłam jeszcze takie rozwiązanie, gdzie tylko zamieniam wybór klasy na wybór selektora i wszystko gra. Nie wiedziałam, że "getElementsByClassName" powoduje coś takiego. Jeszcze raz dzięki :)

var menuIcon = document.querySelector('.menu-icon');
var nav = document.querySelector('.nav');

menuIcon.addEventListener('click', function(){
  nav.classList.toggle('nav-active');
  });

 

komentarz 4 września 2017 przez zgrybus Pasjonat (24,860 p.)
możesz tak zrobić, ponieważ querySelector zwraca jeden element ( jak getElementById ).

Podobne pytania

0 głosów
1 odpowiedź 487 wizyt
pytanie zadane 25 sierpnia 2019 w JavaScript przez niezalogowany
0 głosów
1 odpowiedź 335 wizyt
pytanie zadane 29 sierpnia 2019 w JavaScript przez Majonez.exe Gaduła (3,490 p.)
0 głosów
1 odpowiedź 265 wizyt
pytanie zadane 13 listopada 2018 w JavaScript przez Nowicjusz22 Nowicjusz (120 p.)

93,631 zapytań

142,553 odpowiedzi

323,056 komentarzy

63,138 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2658p. - dia-Chann
  2. 2630p. - DziarnowskiJ
  3. 2550p. - raydeal
  4. 2478p. - rucin93
  5. 2361p. - Łukasz Piwowar
  6. 2340p. - CC PL
  7. 2300p. - Adrian Wieprzkowicz
  8. 2117p. - Łukasz Eckert
  9. 2082p. - Michal Drewniak
  10. 1957p. - Maurycy W
  11. 1885p. - robwarsz
  12. 1811p. - rafalszastok
  13. 1600p. - Rafał Trójniak
  14. 1588p. - Tomasz Bielak
  15. 1494p. - ssynowiec
Szczegóły i pełne wyniki

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

Kursy INF.02 i INF.03
...