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

Javascript / jquery niedziałająca funkcja bez błędów

Object Storage Arubacloud
0 głosów
245 wizyt
pytanie zadane 25 maja 2021 w JavaScript przez Doge Gaduła (3,370 p.)

Witam, mam następujący kod:

window.addEventListener('load', wczytanie);
var ajdi = "";
var ajdi2 = "";
function wczytanie()
{
	$('.menu_bok').click(function()
	{
		ajdi = $(this).attr('id');
		ajdi2 = "#"+ajdi;
	});
	$(ajdi2).css("background-color","red");
	$(ajdi2).css("color","white");
	$(".menu_bok:not(ajdi2)").css("background-color","rgb(157, 168, 168)");
	$(".menu_bok:not(ajdi2)").css("color","black");
}

Nie wyskakują żadne błędy w przeglądarce, w menu_bok wywoływana jest funkcja "wczytanie", przy alercie poprawnie pokazuje zmienne, lecz ostatnie 4 linijki funkcji nie działają. O co chodzi? Czy na przykład w jQuery nie można dać $(tutaj) nazwy zmiennej czy jak? Przy wpisywaniu konkretnego id $(tutaj) prawidłowo podmienia kolory. Prosiłbym o wyjaśnienie.

komentarz 25 maja 2021 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)
Nie wiem co to za bład, ale proszę... nie ucz się JQuery w 2021 jeśli nie musisz :)
komentarz 26 maja 2021 przez Doge Gaduła (3,370 p.)
Dlaczego nie powinienem się go uczyć? Czy jest jakiś nowszy, lepszy i łatwiejszy do nauki odpowiednik? Ponieważ u pana Mirosława Zelenta słyszałem, że jest to dobry język, lecz poradnik jest sprzed paru lat i może się coś zmieniło. I czy da się np. zrobić automatyczny animowany slider ze zdjęciami w samym javasripcie?
komentarz 26 maja 2021 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)

1 odpowiedź

+3 głosów
odpowiedź 25 maja 2021 przez Comandeer Guru (601,110 p.)
wybrane 26 maja 2021 przez Doge
 
Najlepsza

Można dać, tylko że Ty nie dałeś ;) W Twoim kodzie ajdi2 jest traktowane jako string. Musisz użyć albo template literals, albo konkatenacji stringów:

// Template literals.
`.menu_bok:not(${ ajdi2 })`

// Konkatenacja
".menu_bok:not(" + ajdi2 + ")"

To jeden błąd. Drugi związany jest z tym, kiedy są wywoływane te 4 linijki: od razu, gdy zachodzi zdarzenie load. A wartość zmiennej ajdi2 jest nadawana dopiero po kliknięciu. Powinieneś przenieść te 4 linijki do środka click, żeby się odpalały przy każdym.

Podobne pytania

0 głosów
1 odpowiedź 777 wizyt
0 głosów
1 odpowiedź 168 wizyt
pytanie zadane 3 lipca 2017 w JavaScript przez Jonki Dyskutant (8,180 p.)

92,568 zapytań

141,422 odpowiedzi

319,638 komentarzy

61,957 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...