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

Można bez Jquery

Object Storage Arubacloud
0 głosów
163 wizyt
pytanie zadane 21 września 2019 w JavaScript przez Majonez.exe Gaduła (3,490 p.)

Wiecie może jak zrobić ten kod bez Jquery? 

const menuIconEl = $('.menu-icon');
const sidenavEl = $('.sidenav');
const sidenavCloseEl = $('.sidenav-close-icon');
function toggleClassName(el, className) {
if (el.hasClass(className)) {
el.removeClass(className);
} else {
el.addClass(className);
}
}
menuIconEl.on('click', function() {
toggleClassName(sidenavEl, 'active');
});
sidenavCloseEl.on('click', function() {
toggleClassName(sidenavEl, 'active');
});

? (Proszę o jakiś przykładowy kod i wytłumaczenie).

Jakby komuś było by to potrzebne ten kod odpowiada za menu na stronie https://aurolia-css.github.io.

2 odpowiedzi

0 głosów
odpowiedź 21 września 2019 przez 42savage Bywalec (2,630 p.)
wybrane 23 września 2019 przez Majonez.exe
komentarz 22 września 2019 przez Majonez.exe Gaduła (3,490 p.)

Tylko jednego nie rozumiem tam nie do końca jasno jest (po mojemu) wytłumaczone .on().

Co w tym kodzie można poprawić? (Tam to .on() jest do poprawy ale czy początek chociaż dobry).

var menuIconEl document.querySelector(".menu-icon");
var sidenavEl document.querySelector(".sidenav");
var sidenavCloseEl document.querySelector(".sidenav-close-icon");



function toggleClassName(el, className) {
if (el.hasClass(className)) {
el.removeClass(className);
} else {
el.addClass(className);
}
}
menuIconEl.on('click', function() {
toggleClassName(sidenavEl, 'active');
});
sidenavCloseEl.on('click', function() {
toggleClassName(sidenavEl, 'active');
});

 

komentarz 22 września 2019 przez 42savage Bywalec (2,630 p.)
var menuIconEl document.querySelector(".menu-icon");
var sidenavEl document.querySelector(".sidenav");
var sidenavCloseEl document.querySelector(".sidenav-close-icon");

brakuje znaku równości

var menuIconEl = document.querySelector(".menu-icon");
var sidenavEl = document.querySelector(".sidenav");
var sidenavCloseEl = document.querySelector(".sidenav-close-icon");

A co do tego 

menuIconEl.on('click', function() {
toggleClassName(sidenavEl, 'active');
});

to jquerowe menuIconEl.on to samo co co javascritpowe

menuIconEl.addEventListener('click', function() {

  var sideNavEl = document.querySelector('.sidenavEl');
  sideNavEl.classList.toggle(active)

});

 

komentarz 23 września 2019 przez Majonez.exe Gaduła (3,490 p.)
var menuIconEl = document.querySelector(".menu-icon");
var sidenavEl = document.querySelector(".sidenav");
var sidenavCloseEl = document.querySelector(".sidenav-close-icon");
function toggleClassName(el, className) {
if (el.hasClass(className)) {
el.removeClass(className);
} else {
el.addClass(className);
}
}
menuIconEl.addEventListener('click', function() {
var sideNavEl = document.querySelector('.sidenavEl');
sideNavEl.classList.toggle(active)
});
sidenavCloseEl.addEventListener('click', function() {
var sideNavEl = document.querySelector('.sidenavEl');
sideNavEl.classList.toggle(active)
});

Nie wiem co nie działa :(

komentarz 23 września 2019 przez 42savage Bywalec (2,630 p.)
if (el.hasClass(className)) 

Przypuszczam ,że to, bo to jquerowa funkcja

powinieneś napisać tak: 

if(el.classList.contains(className){
    // do something
}

i zamisat

el.addClass

powinno być

el.classList.add('nazwaKlasy')

 

komentarz 23 września 2019 przez Majonez.exe Gaduła (3,490 p.)
const menuIconEl = document.querySelector('.menu-icon');
const sidenavEl = document.querySelector('.sidenav');
const sidenavCloseEl = document.querySelector('.sidenav-close-icon');
const onclick = e => sidenavEl.classList.toggle( 'active' );
menuIconEl.addEventListener( 'click', onclick );
sidenavCloseEl.addEventListener( 'click', onclick );

Sam się pobawiłem i jest dla potomności działa.

0 głosów
odpowiedź 21 września 2019 przez Tomek Sochacki Ekspert (227,510 p.)
  1. document.querySelector
  2. element.classList.toggle - wraz z opcjonalnym drugim parametrem dla condition
  3. addEventListener dla obsługi eventu click

Poczytaj w dokumentacji np. MDN o tych trzech elementach i powinieneś sobie poradzić z przerobieniem tego na pure JS.

komentarz 21 września 2019 przez Majonez.exe Gaduła (3,490 p.)
const = document.querySelector('.menu-icon');
const = document.querySelector('.sidenav');
const sidenavCloseEl = document.querySelector('.sidenav-close-icon');
function toggleClassName(el, className) {
if (el.hasClass(className)) {
el.removeClass(className);
} else {
el.addClass(className);
}
}
menuIconEl.on('click', function() {
toggleClassName(sidenavEl, 'active');
});
sidenavCloseEl.on('click', function() {
toggleClassName(sidenavEl, 'active');
});

Coś takiego wykleciłem (nie działa) nie wiem dla czego (może początek)

komentarz 21 września 2019 przez Tomek Sochacki Ekspert (227,510 p.)
const co? gdzie nazwa stalej? No i nie wykorzystałeś tych 3 rzeczy, które wymienilem. Poczytaj sobie na spokojnie docs, tam masz wszystko bardzo ladnie rozpisane.

Podobne pytania

0 głosów
1 odpowiedź 241 wizyt
0 głosów
1 odpowiedź 775 wizyt
0 głosów
0 odpowiedzi 401 wizyt
pytanie zadane 24 maja 2019 w JavaScript przez iframeeh Użytkownik (680 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 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!

...