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
# ref-for-dom-customevent-customevent

Browser compatibility

desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
CustomEvent() constructor

See also