← Niveau 2 – Tovenaar

Les 2 van 8 ⏱ 25 minuten

Je eerste spreuk: een knop die iets doet

De pagina reageert voor het eerst op een klik. Je leert een element te vinden en naar gebeurtenissen te luisteren.

Ik laat je zien: de drie stappen van elke spreuk

Bijna alles wat JavaScript op een pagina doet, volgt drie stappen:

  1. Vind een element op de pagina (een knop, een kop, een afbeelding…),
  2. luister naar een gebeurtenis (een klik, muis eroverheen, tekst typen…),
  3. doe iets (verander de tekst, de kleur, verberg het, toon het…).

Zo ziet dat er in code uit. Voeg in de HTML een knop en een alinea toe:

<button id="my-button">Click me</button>
<p id="greeting">Nothing has happened yet.</p>

En in script.js:

// 1. Find the elements by their id
const myButton = document.getElementById("my-button");
const greeting = document.getElementById("greeting");

// 2. Listen for a click on the button
myButton.addEventListener("click", () => {
  // 3. Do something: change the paragraph's text
  greeting.textContent = "The spell works! 🎉";
});

Laten we het nieuwe uitleggen:

Nu jij 💪

Voeg je eerste spreuk toe aan je website. Kies er één op basis van je project (of verzin je eigen):

🏫 Schoolwebsite – een knop "Wat is er vandaag te eten?"

HTML (op de homepage):

<button id="lunch-button">What's for lunch today?</button>
<p id="lunch"></p>

script.js:

const lunchButton = document.getElementById("lunch-button");
const lunch = document.getElementById("lunch");

lunchButton.addEventListener("click", () => {
  lunch.textContent = "Today: pizza and salad! 🍕";
});
🙋 Persoonlijke website – een knop "Vertel een grap"
<button id="joke-button">Tell me a joke</button>
<p id="joke"></p>
const jokeButton = document.getElementById("joke-button");
const joke = document.getElementById("joke");

jokeButton.addEventListener("click", () => {
  joke.textContent = "Why do programmers prefer dark mode? Because light attracts bugs! 😄";
});
🌍 Reisdagboek – een knop "Waar gaan we naartoe?"
<button id="where-button">Where are we going next?</button>
<p id="where"></p>
const whereButton = document.getElementById("where-button");
const where = document.getElementById("where");

whereButton.addEventListener("click", () => {
  where.textContent = "Packing our bags: we're headed to the beach in Greece! 🌊";
});
⚽ Clubwebsite – een knop "Wanneer is de volgende wedstrijd?"
<button id="match-button">When's the next match?</button>
<p id="match"></p>
const matchButton = document.getElementById("match-button");
const match = document.getElementById("match");

matchButton.addEventListener("click", () => {
  match.textContent = "Saturday at 10:00, home game vs. Riverside. Come cheer us on! 📣";
});

Bonus: style je knop in CSS zodat hij er mooi uitziet:

button {
  font-size: 16px;
  font-weight: bold;
  padding: 10px 20px;
  border: none;
  border-radius: 999px;
  background-color: #1d4ed8;
  color: white;
  cursor: pointer;
}

button:hover {
  background-color: #1e40af;
}
⚠️

Werkt het niet? Open de console (F12). De meest voorkomende fouten: 1) het id in HTML komt niet exact overeen met de naam in getElementById (hoofdletters tellen ook!), 2) de <script> staat niet helemaal aan het eind van <body>, 3) een ontbrekende haak – de console geeft het regelnummer.

Controleer jezelf: Je klikt op de knop en er verschijnt tekst op de pagina. Je hebt net alle drie de talen van het web verbonden: HTML (de knop), CSS (de look) en JavaScript (het gedrag).

Wat neem je mee uit deze les