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

Jak wykonać button z możliwością naciśnięcia i wyświetlenia drugiego tekstu

Object Storage Arubacloud
0 głosów
1,017 wizyt
pytanie zadane 20 października 2019 w HTML i CSS przez Kubs Mądrala (5,190 p.)

Witajcie,

czy ten kod jest poprawny? Chcę w przycisku zawrzeć tekst ON i po naciśnięciu OFF.

 

<div class="container">
  <button </button>
  <span class="trigger">ON</span>
  <span class="info d-none">OFF</span>
 </div>

 

1 odpowiedź

0 głosów
odpowiedź 20 października 2019 przez DawidK Nałogowiec (37,910 p.)

W html możesz umieścić tylko przycisk i w javascript zmieniać tekst na przeciwny tzn z 'on' na 'off '.

index.html

<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
    <title>Button on off</title>
    <meta name='viewport' content='width=device-width, initial-scale=1'>
</head>
<body>
    <button id='button'>ON</button>

    <script src='main.js'></script>
</body>
</html>

main.js

const button = document.querySelector('#button');

button.addEventListener('click', changeText);

function changeText() {
    button.innerHTML = button.innerHTML == 'ON' ? 'OFF' : 'ON';
}

zmienna1 == zmienna2 ? wartość : wartość to skrócona postać if(zmienna1==zmienna2)...else 

komentarz 20 października 2019 przez Kubs Mądrala (5,190 p.)
Dziękuję. Uruchomiłem ale nie zmienia mi się z ON na OFF. Mam tylko ON.
komentarz 20 października 2019 przez DawidK Nałogowiec (37,910 p.)
dziwne, u mnie działa - co Ci się wyświetla w konsoli?
komentarz 20 października 2019 przez Kubs Mądrala (5,190 p.)
Uff, działa. Wybacz, uruchomiłem na stronie gdzie testuje kody i nie chodziło. Gdy uruchomiłem w VSC wszystko gra.

Dopytam jeszcze odnośnie kodu JS. Użycie:

$('.trigger').click(function(){
  $('.trigger').addClass('d-none');
  $('.info').removeClass('d-none');
});

jest równoznaczne z twoim rozwiązaniem w JS czy różni się czymkolwiek?
komentarz 20 października 2019 przez Kubs Mądrala (5,190 p.)
Zapomniałem dodać, że docelowo ma być to przycisk wysyłający tekst (formularz) na serwer oraz ma działać tylko raz.

To pewnie zmieni sytuację.
1
komentarz 20 października 2019 przez DawidK Nałogowiec (37,910 p.)
kod, który napisałeś wykorzystuje bibliotekę jquery, po kliknięciu na element o id 'trigger' dodaje do niego klasę css 'd-none' i usuwa klasę 'd-none' z elementu o id 'info'. Nie wiem co w nich jest, ale obstawiałbym 'display:none' (czyli niewyświetlanie)
komentarz 20 października 2019 przez DawidK Nałogowiec (37,910 p.)

Jeżeli ma zadziałać tylko raz możesz zmodyfikować funkcję żeby tylko zmieniła tekst na ' off  ' i zablokowała przycisk.

function changeText() {
    button.innerHTML = 'OFF';
    button.disabled = true;
}

 

1
komentarz 20 października 2019 przez ScriptyChris Mędrzec (190,190 p.)

Jeżeli ma zadziałać tylko raz możesz zmodyfikować funkcję żeby tylko zmieniła tekst na ' off  ' i zablokowała przycisk.

Albo do addEventListener przekazać, jako drugi parametr, obiekt { once: true }.

W przypadku jQuery'owego click( .. ) można wewnątrz callbacka odpiąć się od zdarzenia wywołując off( .. ).

Podobne pytania

0 głosów
1 odpowiedź 123 wizyt
pytanie zadane 30 września 2020 w HTML i CSS przez Dzango111 Użytkownik (660 p.)
0 głosów
0 odpowiedzi 177 wizyt
pytanie zadane 10 października 2017 w JavaScript przez Vorex444 Dyskutant (9,610 p.)
0 głosów
1 odpowiedź 912 wizyt
pytanie zadane 29 czerwca 2017 w HTML i CSS przez Adrian86452 Użytkownik (690 p.)

92,615 zapytań

141,465 odpowiedzi

319,781 komentarzy

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

...