---
title: "Evented | JavaScript maps SDK"
description: "Documentation for MapTiler SDK"
---

> For AI agents: a documentation index is available at [/llms.txt](https://docs.maptiler.com/llms.txt). Markdown versions of all pages are available by appending .md to any URL.

# Class Evented

Methods mixed in to other classes for event capabilities.

#### Hierarchy ([View Summary](https://docs.maptiler.com/sdk-js/api-reference/hierarchy/#Externals.Evented))

-   Evented
    -   [StyleLayer](https://docs.maptiler.com/sdk-js/api-reference/classes/StyleLayer/)
    -   [Marker](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Marker/)
    -   [Popup](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Popup/)
    -   [Style](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Style/)
    -   [GeoJSONSource](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.GeoJSONSource/)
    -   [ImageSource](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.ImageSource/)
    -   [RasterTileSource](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.RasterTileSource/)
    -   [VectorTileSource](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.VectorTileSource/)
    -   [GeolocateControl](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.GeolocateControl/)
    -   [FullscreenControl](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.FullscreenControl/)
    -   [ImageManager](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.ImageManager/)
    -   [TileManager](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.TileManager/)
    -   [Light](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Light/)
    -   [Sky](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Sky/)
    -   [Camera](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Camera/)
    -   [TerrainTileManager](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.TerrainTileManager/)

##### Index

### Constructors[](#constructors)

[constructor](#constructor)

### Methods[](#methods)

[fire](#fire) [listens](#listens) [off](#off) [on](#on) [once](#once) [setEventedParent](#seteventedparent)

## Constructors[](#constructors-1)

### constructor[](#constructor)

-   new Evented(): Evented[](#constructorevented)
    
    #### Returns Evented
    

## Methods[](#methods-1)

### fire[](#fire)

-   fire(event: string | [Event](https://docs.maptiler.com/sdk-js/api-reference/classes/Event/), properties?: any): this[](#fire-1)
    
    #### Parameters
    
    -   event: string | [Event](https://docs.maptiler.com/sdk-js/api-reference/classes/Event/)
    -   `Optional`properties: any
    
    #### Returns this
    

### listens[](#listens)

-   listens(type: string): boolean[](#listens-1)
    
    Returns a true if this instance of Evented or any forwardeed instances of Evented have a listener for the specified type.
    
    #### Parameters
    
    -   type: string
        
        The event type
        
    
    #### Returns boolean
    
    `true` if there is at least one registered listener for specified event type, `false` otherwise
    

### off[](#off)

-   off(type: string, listener: [Listener](https://docs.maptiler.com/sdk-js/api-reference/types/Listener/)): this[](#off-1)
    
    Removes a previously registered event listener.
    
    #### Parameters
    
    -   type: string
        
        The event type to remove listeners for.
        
    -   listener: [Listener](https://docs.maptiler.com/sdk-js/api-reference/types/Listener/)
        
        The listener function to remove.
        
    
    #### Returns this
    

### on[](#on)

-   on(type: string, listener: [Listener](https://docs.maptiler.com/sdk-js/api-reference/types/Listener/)): [Subscription](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Subscription/)[](#on-1)
    
    Adds a listener to a specified event type.
    
    #### Parameters
    
    -   type: string
        
        The event type to add a listen for.
        
    -   listener: [Listener](https://docs.maptiler.com/sdk-js/api-reference/types/Listener/)
        
        The function to be called when the event is fired. The listener function is called with the data object passed to `fire`, extended with `target` and `type` properties.
        
    
    #### Returns [Subscription](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Subscription/)
    

### once[](#once)

-   once(type: string, listener?: [Listener](https://docs.maptiler.com/sdk-js/api-reference/types/Listener/)): Evented | Promise<any\>[](#once-1)
    
    Adds a listener that will be called only once to a specified event type.
    
    The listener will be called first time the event fires after the listener is registered.
    
    #### Parameters
    
    -   type: string
        
        The event type to listen for.
        
    -   `Optional`listener: [Listener](https://docs.maptiler.com/sdk-js/api-reference/types/Listener/)
        
        The function to be called when the event is fired the first time.
        
    
    #### Returns Evented | Promise<any\>
    
    `this` or a promise if a listener is not provided
    

### setEventedParent[](#seteventedparent)

-   setEventedParent(parent?: Evented | null, data?: any): this[](#seteventedparent-1)
    
    Bubble all events fired by this instance of Evented to this parent instance of Evented.
    
    #### Parameters
    
    -   `Optional`parent: Evented | null
    -   `Optional`data: any
    
    #### Returns this
