CustomEvent: CustomEvent() constructor

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Note: This feature is available in Web Workers.

The CustomEvent() constructor creates a new CustomEvent object.

Syntax

js
new CustomEvent(type)
new CustomEvent(type, options)

Parameters

type

A string providing the name of the event. Event names are case-sensitive.

options Optional

An object that, in addition of the properties defined in Event(), can have the following properties:

detail Optional

An event-dependent value associated with the event. This value is then available to the handler using the CustomEvent.detail property. It defaults to null.

Return value

A new CustomEvent object.

Example

js
// create custom events
const catFound = new CustomEvent("animalfound", {
  detail: {
    name: "cat",
  },
});
const dogFound = new CustomEvent("animalfound", {
  detail: {
    name: "dog",
  },
});

const element = document.createElement("div"); // create a <div> element

// add an appropriate event listener
element.addEventListener("animalfound", (e) => console.log(e.detail.name));

// dispatch the events
element.dispatchEvent(catFound);
element.dispatchEvent(dogFound);

// "cat" and "dog" logged in the console

Additional examples can be found at Creating and triggering events.

Specifications

Specification
DOM Standard
# ref-for-dom-customevent-customevent

Browser compatibility

BCD tables only load in the browser

See also