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

nawigacja vanilla js

42 Warsaw Coding Academy
0 głosów
370 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ź 365 wizyt
pytanie zadane 25 sierpnia 2019 w JavaScript przez niezalogowany
0 głosów
1 odpowiedź 286 wizyt
pytanie zadane 29 sierpnia 2019 w JavaScript przez Majonez.exe Gaduła (3,490 p.)
0 głosów
1 odpowiedź 209 wizyt
pytanie zadane 13 listopada 2018 w JavaScript przez Nowicjusz22 Nowicjusz (120 p.)

93,377 zapytań

142,380 odpowiedzi

322,532 komentarzy

62,727 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...