Wywoływanie funkcji przez onclick w HTML, rejestracja addEventListener oraz obsługa zdarzeń formularza change i input.
Zdarzenie (event) to sygnał informujący przeglądarkę, że zaszła określona akcja użytkownika — na przykład kliknięcie przycisku, naciśnięcie klawisza lub zmiana zaznaczenia pola wyboru.
function ustawKolor(kodHex, nazwaKoloru) {
const ramka = document.getElementById("ramkaPodgladu");
ramka.style.borderColor = kodHex;
ramka.style.color = kodHex;
ramka.textContent = "Wybrano kolor: " + nazwaKoloru;
}
function ustawKolor(kodHex, nazwaKoloru) {
const ramka = document.getElementById("ramkaPodgladu");
ramka.style.borderColor = kodHex;
ramka.style.color = kodHex;
ramka.textContent = "Wybrano kolor: " + nazwaKoloru;
}
W jaki sposób poprawnie wywołać funkcję oblicz z poziomu atrybutu onclick w znaczniku HTML?
Poprawna: a) W atrybutach HTML typu onclick podaje się bezpośrednie wywołanie funkcji wraz z nawiasami, np. onclick='oblicz()'.
Drugim standardowym sposobem obsługi interakcji jest rejestracja tzw. nasłuchiwacza zdarzeń (event listener) w całości po stronie kodu JavaScript, z zachowaniem czystego kodu HTML bez dodatkowych atrybutów.
let licznik = 0;
function zwiekszLicznik() {
licznik += 1;
const wynik = document.getElementById("licznikKlikniec");
wynik.textContent = "Liczba kliknięć: " + licznik;
}
const przycisk = document.getElementById("przyciskLicznika");
przycisk.addEventListener("click", zwiekszLicznik);
let licznik = 0;
function zwiekszLicznik() {
licznik += 1;
const wynik = document.getElementById("licznikKlikniec");
wynik.textContent = "Liczba kliknięć: " + licznik;
}
const przycisk = document.getElementById("przyciskLicznika");
przycisk.addEventListener("click", zwiekszLicznik);
Jaką nazwę zdarzenia kliknięcia należy podać jako pierwszy argument metody addEventListener?
Poprawna: d) W metodzie addEventListener podaje się nazwę zdarzenia bez przedrostka 'on', czyli 'click'.
Oprócz kliknięć myszą ( click ) w aplikacjach internetowych kluczowe znaczenie ma obsługa zdarzeń generowanych przez kontrolki formularzy:
function aktualizujBudzet() {
const suwak = document.getElementById("suwakBudzetu");
const wyswietlacz = document.getElementById("wyswietlacz");
wyswietlacz.textContent = suwak.value + " zł";
}
const suwak = document.getElementById("suwakBudzetu");
suwak.addEventListener("input", aktualizujBudzet);
function aktualizujBudzet() {
const suwak = document.getElementById("suwakBudzetu");
const wyswietlacz = document.getElementById("wyswietlacz");
wyswietlacz.textContent = suwak.value + " zł";
}
const suwak = document.getElementById("suwakBudzetu");
suwak.addEventListener("input", aktualizujBudzet);
Kiedy w kontrolce typu suwak range wywoływane jest zdarzenie o nazwie input?
Poprawna: c) Zdarzenie input odpala się na bieżąco przy każdym ruchu suwaka lub wpisaniu znaku.