Dodanie klasy do obiektu z pomocą jQuery [JS]
Z tego artykułu dowiecie się jak z pomocą jQuery dodać dodatkową klasę do obiektu HTML. Po części ten temat przemykał już kilkakrotnie, ale dla części z was mógł wydać się niezrozumiały. Dlatego postanowiłam go nieco rozwinąć.
Umiejętność dodania lub /i usuwania klasy do konkretnego elementu HTML takiego jak np. <div>, <span>; jest bardzo przydatna i otwiera przed nami nowe możliwości. Chociaż jeśli jesteś początkujący możesz sobie z tego jeszcze nie zdawać sprawy. Za pomocą klas można bowiem „zarządzać obiektami” nie tylko w CSS, ale również w JS (jQuery czy innych innych bibliotekach). Klasa bądź ID może być trigerem (prowokatorem) do wykonania jakieś operacji np. menu przyczepione do góry strony. Warto wiedzieć więc jak to zrobić.
W przyszłości planuję również trochę rozwinąć temat o:
Do poniższych zmiennych postaram się przygotować proste demo. Dzięki czemu będziecie mogli przetestować jak działają.
Funkcji tej używałam już wielokrotnie na blogu. Ostatnio przy budowaniu prostego akordeonu. W zależności do jakiego obiektu chcemy dodać dodatkową klasę nasz kod będzie wyglądał inaczej np.
$('nav').addClass('fixed-top'); W tym przypadku dodajemy klasę „fixes-top” do elementu/ów <nav>. Robimy więc dokładnie to co pisze <nav> dodaj klasę fixed-top
W efekcie kod strony przed wczytanie JS (pierwotnie) będzie wyglądał tak:
<nav class="navbar navbar-expand-md navbar-light ">
A po odczytaniu kodu i jego interpretację przez przeglądarkę:
<nav class="navbar navbar-expand-md navbar-light fixed-top">
UWAGA: Kod JS jest interpretowany przez przeglądarkę. To ona na bieżąco wprowadza zmiany i wykonuje polecenia zapisane w JS. Analogicznie jest z CSS i HTML. Kod pisany w PHP interpretowany jest przez serwer. Przeglądarka otrzymuje już gotowy skrypt zamienimy na HTML, który można modyfikować w CSS.
Teraz dodamy klasę dopiero po wykonaniu określonej czynności w tym wypadku będzie to kliknięcie w przycisk. Nasz kod jQuery, który nam to umożliwi będzie więc mniej więcej wyglądał tak:
$("button").click(function(){
$("h1, h2, p").addClass("green");
$("div").addClass("red");
}); Jak widać kod zaczyna się od polecenia:
$("button").click(function(){}); Rozłóżmy go na części pierwsze.
Dosłownie tłumacząc -> Po kliknięciu w przycisk wykonaj funkcję / operację. Do elementów „h1”, „h2”, i „p” zostanie dodana klasa „green” a do znacznika „div” – „red”. Teraz to co się stanie zależy od tego co jest napisane w CSS. W przypadku mojego demo nastąpi zmiana koloru tekstu.
Analogicznie jak dodawaliśmy tak i możemy usuwać klasę. Bo przykładowo nie jest ona nam już potrzebna na danym elemencie.
$("button").click(function(){
$("h1, h2, p").removeClass("green");
$("div").removeClass("red");
}); Teraz zrobię coś trochę innego i dla odmiany będę pracować nad listą. W związku z tym zależeć mi będzie na dodawaniu i usuwaniu klasy po kliknięciu w dany obiekt. Coś podobnego wykonałam już przy okazji budowy tabów.
$("#myMenu li a").click(function(){
$('li a.active').removeClass('active');
$(this).addClass('active');
}); I tak w moim kodzie muszę zmienić pierwszą linijkę. Nie będę przecież klikać w przycisk tylko w element listy. Ścieżka jest analogiczna do tej w CSS.
W środku funkcji też wprowadzam pewne zmiany. Na początek tworzę komendę, która odnajdzie element listy posiadający klasę, którą chce dodawać i osuwać – klasę „active„. Następnie usuwam ją. W ten sposób pozbywam się wszystkich potencjalnych elementów listy z tą klasą.
Teraz czas dodać klasę tylko i wyłącznie do elementu, w który klikam. $(this) -> w ten sposób odnoszę się do tego elementu.
Ciekawą opcją jest toggleClass. Zmienna ta działa na zasadzie togle (włącz / wyłącz).
$("button").click(function(){
$("h1, h2, p").toggleClass("green");
$("div").toggleClass("red");
}); Jak w przypadku wielu różnych tematów tak i w przypadku marki osobistej pojawiło się przez…
Choć zabrzmi to może nieco dziwnie to wprowadzenie AI (sztucznej inteligencji) do naszego życia było…
Widmo Brockenu to dość rzadko spotykane zjawisko optyczne, najczęściej widywane w wysokich partiach gór. Można…
Zacznę może od tego, że relikwia, relikwii nie równa. Wiem jeśli nie ma się pojęcia…
Logo stanowi jeden z ważniejszych elementów tożsamości wizualnej praktycznie każdej firmy, marki czy projektu. Logo…
Budując własną markę osobistą lub chcąc ją zbudować trzeba liczyć się z wieloma wyzwaniami. Jednym…
View Comments
Bardzo dobry artykuł. Gratuluje
Dziękuję :)