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

Ukrycie elementu klikając "poza" nim

VPS Starter Arubacloud
0 głosów
111 wizyt
pytanie zadane 26 kwietnia 2023 w JavaScript przez zbiku25 Gaduła (3,000 p.)

Hej,

Próbuję zaprogramować stan, w którym klikając poza określony element, dany element zniknie. Niestety kod nie działa. Uprzejma prośba o pomoc.

Kod JS

var lang;
lang = document.querySelector("#language");

function change()
	{
		if (lang.style.display==="none" || lang.style.display=="" )
		{
			lang.style.display="block";
		}
		else
		{
			lang.style.display="none";
		}
	}
	

document.addEventListener('click', function clickOutside(event) {

  if (lang.contains(event.target)) {

  lang.style.display = 'none';

  }

});

 

2 odpowiedzi

0 głosów
odpowiedź 26 kwietnia 2023 przez Comandeer Guru (605,260 p.)

Tak na oko, to ukrywasz element lang tylko wówczas, gdy zawiera on aktualnie kliknięty element – a warunek powinien być raczej odwrotny (czyli ukrywanie wówczas, gdy NIE zawiera aktualnie klikniętego elementu).

Dodatkowo, zamiast operować bezpośrednio na stylach, można operować na klasach w CSS-ie (np. dzięki temu będziesz w stanie zastąpić cały kod w funkcji change() de facto wywołaniem lang.classList.toggle()).

0 głosów
odpowiedź 26 kwietnia 2023 przez VBService Ekspert (255,840 p.)
edycja 26 kwietnia 2023 przez VBService

Proponuje, sprawdź co zawiera event.target

[ on-line ]

document.addEventListener('click', (e) => {
  if (!e.target.matches('.center')) // w tym kontekście, czego nie zawiera
    lang.classList.remove('show');
});

 

 

BTW, sprawdź też taki zapis w ramach ciekawostki, on-line

function change() {
  if (!lang.style.display || lang.style.display == 'none' )
    ...
}

 

Podobne pytania

0 głosów
0 odpowiedzi 174 wizyt
pytanie zadane 25 stycznia 2018 w C i C++ przez GregTheBlackFox Nowicjusz (120 p.)
0 głosów
1 odpowiedź 180 wizyt
pytanie zadane 14 lutego 2019 w JavaScript przez Kinga Nowicjusz (210 p.)
0 głosów
1 odpowiedź 222 wizyt
pytanie zadane 3 sierpnia 2019 w JavaScript przez Magicone Nałogowiec (45,100 p.)

93,024 zapytań

141,986 odpowiedzi

321,290 komentarzy

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

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...