How to add event listeners to HTML elements using JavaScript

Learn how to execute specific code when a specific event is triggered using JavaScript

Posted on April 07, 2021


JavaScript allows you to attach event listeners to HTML elements so that you can run a certain function when an event is triggered. Some examples of events are when a button is “clicked” or when the mouse pointer is moved to touch the element.

The built-in method addEventListener() allows you to attach an event listener to an HTML element. It accepts two parameters: the event type to listen to and the callback function to run when the event is triggered:

Element.addEventListener(type, callbackFn);

For example, suppose you want to display an alert() box when a <button> element is clicked. Here’s how you do it:

<body>
  <button id="save">Save</button>
  <script>
    let button = document.getElementById("save");

    function fnClick(event) {
      alert("Button save is clicked");
    }

    button.addEventListener("click", fnClick);
  </script>
  <body></body>
</body>

First, the button element is selected using document.getElementById() method, then the method addEventListener() is called on the element. First, you specify the type of event to listen, which is click in this case. Next, you specify the callback function reference.

In the code above, the fnClick function will be called when the click event is triggered. You can also add multiple event listeners to the same element without overwriting the previous event listener.

The following example shows how the click event will execute both event listeners, ordered from top to bottom. The fnClick function will be called first, then the exampleClick function:

<body>
  <button id="save">Save</button>
  <script>
    let button = document.getElementById("save");

    function fnClick(event) {
      alert("Button save is clicked");
    }

    function exampleClick(event) {
      alert("Hello World!");
    }

    button.addEventListener("click", fnClick);
    button.addEventListener("click", exampleClick);
  </script>
  <body></body>
</body>

The full list of HTML event type can be found here

You can also remove event listeners you’ve attached to elements using the removeEventListener() method.

Related articles:

Grab the free JavaScript book today 👍

Learn the building blocks of JavaScript programming language like data types, functions, objects, arrays and classes.

Use the knowledge from the book to build a small but solid program.

Learn more