Events and Event Listeners
Events report user interactions such as clicks and input. addEventListener attaches handlers without mixing JavaScript into HTML attributes.
What you will learn
- Explain the purpose of events and event listeners in a real website.
- Read and adapt a working example instead of memorizing syntax.
- Test your result and recognize a common implementation mistake.
Understanding the concept
addEventListener connects a handler to an event; use preventDefault only when necessary.
JavaScript adds logic and interactivity to web pages. Prefer const unless a variable needs reassignment; use let when it does.
This topic is part of the JavaScript learning track. Read the example carefully, identify each important element or statement, and try changing one part at a time. Small experiments help you see cause and effect.
Example 1: Working code
<button id="counter">Clicked 0 times</button>
<script>
let clicks = 0;
document.querySelector("#counter").addEventListener("click", event => {
clicks++;
event.currentTarget.textContent = `Clicked ${clicks} times`;
});
</script>
Open your browser Developer Tools (usually F12), select Console, paste the example and press Enter. Alternatively, put it in a script element in an HTML file.
How to understand this example
- Identify the syntax introduced by this lesson.
- Read the code from top to bottom and predict what it will do.
- Run the code, then compare the result with your prediction.
- Change one value, selector, or element and run it again.
Example 2: A small experiment
// Experiment: Events and Event Listeners
const lessonNumber = 15;
console.log(`DevLearn JavaScript lesson ${lessonNumber}`);
This second example is a practice scaffold. It is not a replacement for the main example; combine the ideas to make a small working page or script.
Common mistakes and best practices
- Check the browser console for errors and use console.log while learning.
- Separate data, logic, and DOM updates to keep code understandable.
- Do not copy examples without understanding the result; inspect and test them.
- Prefer clear, descriptive names and simple code over unnecessary complexity.
Hands-on exercise
Your task: Build a counter with increment and reset buttons.
Extra challenge: Improve the example for a real DevLearn student portfolio or small business website. Explain your changes in two sentences.
Show exercise guidance
Adapt the first code example to meet the exercise, run it, inspect the result and handle at least one unexpected input.
Quick knowledge check
- What problem does events and event listeners solve?
- Which part of the main code example would you modify first?
- How would you test that your change works?
Suggested answers
addEventListener connects a handler to an event; use preventDefault only when necessary. The relevant part depends on your change; test by running the code and inspecting the result using the browser and its developer tools.
Next steps
Complete the exercise without copying the solution. Save your code in a folder named javascript-lesson-15, then continue to the next lesson in this track.
Explore DevLearn courses for guided projects and feedback.
Explore Live Courses →