A Beginner's Guide to JavaScript Event Handling


3 min read

JavaScript plays a vital role in building interactive web pages, and at the heart of that interactivity are events. Understanding how to handle events is a crucial part of becoming a proficient JavaScript developer. In this blog post, we will cover the basics of event handling in JavaScript.

What are Events?

Events are actions or occurrences that happen in the system you're programming, which the system tells you about so you can respond to them in some way if desired. These might be something the browser does, or something a user does. Examples of events include:

  • A user clicks a button.

  • A web page finishing loading.

  • An error is being thrown.

  • A form is being submitted.

Let's dive in and see how to work with these events in JavaScript.

Listening for Events

The first step in event handling is listening for an event. This is done using the addEventListener method.

let button = document.querySelector('button'); 

button.addEventListener('click', function() { 
    console.log('Button was clicked!'); 

In this code, we first select the button element. Then, we add an event listener to it for the 'click' event. When the button is clicked, the function we passed to addEventListener is executed.

The addEventListener method takes two parameters: the name of the event we want to listen for and the function to run when the event occurs.

Event Objects

When an event occurs and the function is executed, the browser automatically passes an event object to the function which contains information about the event.

Here's how to use the event object:

javascriptCopy codebutton.addEventListener('click', function(event) { console.log(event); });

The event object has a number of useful properties and methods. For example, the target property can be used to access the element that triggered the event.

Removing Event Listeners

In some cases, you may want to stop listening for an event after it has occurred. This can be done using the removeEventListener method.

function handleClick(event) { 
    console.log('Button was clicked!'); 
    button.removeEventListener('click', handleClick); 

button.addEventListener('click', handleClick);

In this example, we will stop listening for the 'click' event after the button has been clicked once.

Event Propagation: Bubbling and Capturing

When an event happens on an element, that event doesn't entirely finish at that element. This event travels to its parent, then its parent's parent, and so on — all the way up on the DOM tree. This process is known as event bubbling.

Event capturing is the opposite of event bubbling. The event starts at the top of the DOM tree and goes down to the target element.

By default, event handlers are executed in the bubbling phase. However, you can set useCapture parameter to true in addEventListener() method to make it execute in the capturing phase.

Event Delegation

Event delegation is a technique where you delegate listening for an event to a parent element. This technique is useful for situations where you have many elements that should have the same event listener, or when you have elements that can be dynamically added or removed.

Here's an example of event delegation:

let ul = document.querySelector('ul'); 

ul.addEventListener('click', function(event) {
    console.log('An item was clicked!'); 

In this example, even if we add or remove list items, the event listener will still function correctly because it's listening on the parent ul element.


Event handling is fundamental to creating interactive web applications. With a good understanding of events, you can create richer, more engaging user experiences. This guide has only scratched the surface of what's possible with JavaScript event handling, but it provides a solid foundation upon which to build more complex event-driven applications. Keep exploring and happy coding!

Did you find this article valuable?

Support 0xTristan by becoming a sponsor. Any amount is appreciated!