JAVASCRIPT

JavaScript Events: Syntax, Usage, and Examples

JavaScript events let you create interactive web pages by responding to user actions like clicks, keypresses, and scrolling. They help you build dynamic experiences, from handling form submissions to triggering animations. Whether you're updating content, tracking user input, or reacting to browser changes, JavaScript events are the backbone of responsive web development.


How to Use JavaScript Events

You can handle events in JavaScript using three common methods:

  1. Inline event attributes in HTML
  2. Event properties in JavaScript
  3. Event listeners using addEventListener()

Using event listeners is the most flexible and recommended approach.

Using Inline Event Handlers

You can attach an event directly to an HTML element using an attribute:

<button onclick="alert('Button clicked!')">Click Me</button>

While this works, it mixes JavaScript with HTML, making your code harder to maintain.

Using Event Properties

A better approach is to assign an event handler inside JavaScript:

const button = document.getElementById("myButton");
button.onclick = function () {
  alert("Button clicked!");
};

However, this method allows only one handler per event type, limiting flexibility.

Using addEventListener()

The best way to handle events is with addEventListener(), which allows multiple handlers for the same event:

const button = document.getElementById("myButton");

button.addEventListener("click", () => {
  alert("Button clicked!");
});

This method separates JavaScript from HTML and makes it easy to manage multiple event listeners.


When to Use JavaScript Events

JavaScript events make web pages more interactive and dynamic. Here are some common use cases:

  1. Handling user interactions – Track clicks, hover effects, and keypresses to trigger actions.
  2. Validating forms – Detect changes in form inputs and validate user data in real time.
  3. Reacting to browser events – Adjust page layout on window resize or execute code when the page loads.
  4. Building interactive UI components – Enable dropdowns, modals, tooltips, and other interactive elements.
  5. Tracking user behavior – Log user actions for analytics or personalized experiences.

Examples of JavaScript Events

Button Click Event

When you click a button, this event logs a message in the console:

document.getElementById("myButton").addEventListener("click", function () {
  console.log("Button clicked!");
});

JavaScript Input Events

Detect user input changes in a text field:

document.getElementById("myInput").addEventListener("input", function (event) {
  console.log("User typed: " + event.target.value);
});

JavaScript Key Events

Detect when a user presses a key:

document.addEventListener("keydown", function (event) {
  console.log("Key pressed: " + event.key);
});

JavaScript Window Events

Respond when the window is resized:

window.addEventListener("resize", function () {
  console.log("Window resized to: " + window.innerWidth + "px");
});

Learn More About JavaScript Events

Types of JavaScript Events

Events in JavaScript fall into several categories:

  • Mouse events: click, dblclick, mousedown, mouseup, mousemove, mouseenter, mouseleave
  • Keyboard events: keydown, keyup, keypress
  • Form events: input, change, submit, focus, blur
  • Window events: load, resize, scroll, beforeunload
  • Document events: DOMContentLoaded, visibilitychange

JavaScript Custom Events

You can create custom events to trigger specific actions in your app.

const myEvent = new CustomEvent("customEvent", { detail: { message: "Hello!" } });

document.addEventListener("customEvent", function (event) {
  console.log("Custom event triggered: " + event.detail.message);
});

document.dispatchEvent(myEvent);

This is useful when you need to signal changes between different parts of your application.

JavaScript Document Events

Document events help track page interactions, like when the DOM is fully loaded.

document.addEventListener("DOMContentLoaded", function () {
  console.log("Page fully loaded");
});

JavaScript DOM Events

DOM events detect when elements are added, removed, or modified.

const targetNode = document.getElementById("myElement");

const observer = new MutationObserver((mutations) => {
  mutations.forEach((mutation) => console.log("DOM changed:", mutation));
});

observer.observe(targetNode, { childList: true, subtree: true });

This is useful when working with dynamic content that updates without reloading the page.


Handling Multiple Events

Sometimes, you need to handle multiple event types on the same element. Instead of adding separate listeners, you can use an array to simplify the process.

const button = document.getElementById("myButton");

["click", "mouseover"].forEach((event) => {
  button.addEventListener(event, () => console.log(`Event triggered: ${event}`));
});

This approach keeps your code cleaner and more efficient.


Stopping Event Propagation

Events bubble up from child elements to their parents. If you want to stop this behavior, use stopPropagation().

document.getElementById("child").addEventListener("click", function (event) {
  event.stopPropagation();
  console.log("Child clicked!");
});

document.getElementById("parent").addEventListener("click", function () {
  console.log("Parent clicked!");
});

Even though the child is inside the parent, clicking it won’t trigger the parent’s event handler.


Preventing Default Behavior

Some events trigger default browser behaviors. You can prevent them using preventDefault().

document.getElementById("myForm").addEventListener("submit", function (event) {
  event.preventDefault();
  console.log("Form submission prevented!");
});

This is especially useful for form validation before sending data to a server.


JavaScript events let you build interactive web applications by responding to user actions and browser changes. Whether handling button clicks, keyboard input, or custom events, events give you control over how users interact with your site.

Learn to Code in JavaScript for Free
Start learning now
button icon
To advance beyond this tutorial and learn JavaScript by doing, try the interactive experience of Mimo. Whether you're starting from scratch or brushing up your coding skills, Mimo helps you take your coding journey above and beyond.

Sign up or download Mimo from the App Store or Google Play to enhance your programming skills and prepare for a career in tech.

You can code, too.

© 2025 Mimo GmbH