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

Zamykanie menu, po nietrafieniu w nie

HackNation - ogólnopolski hackathon
0 głosów
442 wizyt
pytanie zadane 2 kwietnia 2019 w JavaScript przez VLeniowy Nowicjusz (190 p.)
Cześć,

Mam taki problem, otóż stworzyłem sidebar-menu, które jest otwierane i zamykane za pomocą przycisku. Jednak nie wiem, co zrobić, aby menu po otworzeniu, zamykało się po nietrafieniu w nie. Wiem, że trzeba użyć, czegoś takiego jak "e.target", jednak nie wiem za bardzo jak to podłączyć do addEventListener. Niżej podaje link jak to wygląda:

https://codepen.io/VLeniowy/pen/VNLXWj

3 odpowiedzi

+2 głosów
odpowiedź 2 kwietnia 2019 przez Comandeer Guru (607,330 p.)

Przy kliku wypada sprawdzić, co zostało kliknięte. Jeśli znajduje się to wewnątrz menu lub jest menu, wtedy nie wykonywać żadnej akcji. Coś typu:

document.addEventListener( 'click', function( { target } ) {
	const menu = document.querySelector( '#menu' );

	if ( menu.contains( menu ) || menu === target) {
		return;
	}
		
	menu.classList.remove( 'active' );
} );
+1 głos
odpowiedź 2 kwietnia 2019 przez olekjs Gaduła (4,590 p.)

Dodaj to do Swojego JS i zobacz czy działa, jak chcesz

document.addEventListener('click', function() {
  const menu = document.querySelector('#menu');
  menu.classList.remove('active');
},true);
komentarz 2 kwietnia 2019 przez VLeniowy Nowicjusz (190 p.)
Zamyka okno, tylko jest problem taki, ze po kliknięciu w menu, się ono zamyka oraz nie działa przycisk. :c
komentarz 2 kwietnia 2019 przez olekjs Gaduła (4,590 p.)
Powiem Ci szczerze że nie mam pomysłu na tę chwilę. Proponuję zrobienie tego w JQ, będzie łatwiej.
0 głosów
odpowiedź 2 kwietnia 2019 przez pablop76 VIP (123,580 p.)
const button = document.getElementById('przycisk');
const menu = document.getElementById('menu');
document.body.addEventListener('click', function(e) {
(e.target.id=="przycisk")?menu.classList.toggle('active'): menu.classList.remove('active');
})

 

komentarz 2 kwietnia 2019 przez Comandeer Guru (607,330 p.)
To zamknie menu po kliknięciu w menu ;)
komentarz 3 kwietnia 2019 przez pablop76 VIP (123,580 p.)
Czasami jest to pożądane np. przy stronach onepage.

Podobne pytania

0 głosów
1 odpowiedź 2,238 wizyt
pytanie zadane 18 lipca 2017 w JavaScript przez Alterwar Dyskutant (7,650 p.)
0 głosów
1 odpowiedź 485 wizyt
pytanie zadane 28 maja 2019 w JavaScript przez Kerto Nowicjusz (240 p.)
0 głosów
2 odpowiedzi 1,185 wizyt
pytanie zadane 27 lutego 2018 w JavaScript przez Konfeusz Bywalec (2,810 p.)

93,626 zapytań

142,549 odpowiedzi

323,034 komentarzy

63,129 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 1452p. - dia-Chann
  2. 1437p. - DziarnowskiJ
  3. 1411p. - Łukasz Piwowar
  4. 1409p. - CC PL
  5. 1371p. - raydeal
  6. 1369p. - Adrian Wieprzkowicz
  7. 1335p. - robwarsz
  8. 1275p. - Maurycy W
  9. 1141p. - ssynowiec
  10. 1134p. - Tomasz Bielak
  11. 1116p. - rucin93
  12. 1100p. - Mariusz Fornal
  13. 885p. - Dominik Łempicki (kapitan)
  14. 847p. - Grzegorz Aleksander Klementowski
  15. 838p. - Wojciech Malicki
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
...