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

question-closed Jak napisać ,,przełącznik" ikonek w JS?

Object Storage Arubacloud
0 głosów
258 wizyt
pytanie zadane 5 stycznia 2023 w JavaScript przez el maccho Użytkownik (620 p.)
zamknięte 5 stycznia 2023 przez el maccho
const passOff = document.querySelector("#passOFF")
const passOn = document.querySelector("#passON")
const passSwitch = document.querySelector("#passSwitch")

passSwitch.addEventListener("click", function(){
    if(passOn.style.display="block"){
        passOn.style.display="none"
        passOff.style.display="block"
    }
    else{
        passOff.style.display="none"
        passOn.style.display="block"
    }
})
                <button type="button" id="passSwitch">
                    <span id="passON"><ion-icon name="eye-outline"></ion-icon></span>
                    <span id="passOFF"><ion-icon name="eye-off-outline"></ion-icon></span>
                </button>

Problem polega w tym, że ikonki nie podmieniają się kiedy ponownie wcisnę buttona

komentarz zamknięcia: odnalazłem odpowiedź na moje pytanie

1 odpowiedź

+1 głos
odpowiedź 5 stycznia 2023 przez ScriptyChris Mędrzec (190,190 p.)
wybrane 5 stycznia 2023 przez el maccho
 
Najlepsza
if(passOn.style.display="block"){

Tutaj powinieneś porównać wartość "block", zamiast ją przypisywać.

komentarz 5 stycznia 2023 przez el maccho Użytkownik (620 p.)

dzięki wielkie za pomoc. Zadam jeszcze jedno pytanko na szybko, ikona zmienia się dopiero po drugim kliknięciu. Myślę, że to może mieć coś związanego z klasami to prawda?

                #passOFF{
                    display: none;
                }
                #passON{
                    display: block;
                }

 

komentarz 5 stycznia 2023 przez ScriptyChris Mędrzec (190,190 p.)

To nie są klasy tylko identyfikatory (i powinno się unikać stylowania po ID). Property style.display sprawdza style inline, nie te ustawione z CSS - w tym przypadku trzeba odczytać style wyliczone poprzez window.getComputedStyle. Lepiej natomiast jakbyś ostylował to poprzez klasy, wtedy aktualnie ustawioną klasę sprawdzisz poprzez classList.contains, a zmiany dokonasz metodą classList.toggle.

Podobne pytania

0 głosów
2 odpowiedzi 300 wizyt
pytanie zadane 22 października 2022 w HTML i CSS przez Reiwilo09 Nowicjusz (120 p.)
0 głosów
4 odpowiedzi 553 wizyt
pytanie zadane 18 kwietnia 2017 w HTML i CSS przez diablo4c Początkujący (250 p.)
0 głosów
1 odpowiedź 743 wizyt
pytanie zadane 1 października 2020 w C i C++ przez Cypus Nowicjusz (180 p.)

92,568 zapytań

141,424 odpowiedzi

319,630 komentarzy

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

...