---
title: "tinymce.util.Observable"
description: "This mixin adds event binding logic to classes. Adapts the EventDispatcher class."
canonical_url: "https://www.tiny.cloud/docs/tinymce/latest/apis/tinymce.util.observable/"
md_url: "https://www.tiny.cloud/docs/tinymce/5/apis/tinymce.util.observable/index.md"
version: "5"
last_updated: "2024-03-26T08:09:19Z"
tokens: 882
---
Important This page documents TinyMCE 5. For new projects, Tiny recommends using the latest, most up-to-date version. [See TinyMCE 8 documentation](../../../latest/apis/tinymce.util.observable/).
# tinymce.util.Observable

This mixin adds event binding logic to classes. Adapts the EventDispatcher class.

## Summary

### Methods

| Name | Summary | Defined by |
| --- | --- | --- |
| [fire()](#fire) | Fires the specified event by name. Consult the [event reference](/docs/advanced/events) for more details on each event. | `Observable` |
| [hasEventListeners()](#hasEventListeners) | Returns true/false if the object has a event of the specified name. | `Observable` |
| [off()](#off) | Unbinds an event listener to a specific event by name. Consult the [event reference](/docs/advanced/events) for more details on each event. | `Observable` |
| [on()](#on) | Binds an event listener to a specific event by name. Consult the [event reference](/docs/advanced/events) for more details on each event. | `Observable` |
| [once()](#once) | Bind the event callback and once it fires the callback is removed. Consult the [event reference](/docs/advanced/events) for more details on each event. | `Observable` |

## Methods

### fire()

```javascript
fire(name: String, args: Object?, bubble: Boolean?): Object
```
Fires the specified event by name. Consult the [event reference](/docs/advanced/events) for more details on each event.

#### Examples

```javascript
instance.fire('event', {...});
```

#### Parameters

- `name (String)` - Name of the event to fire.
- `args (Object?)` - Event arguments.
- `bubble (Boolean?)` - True/false if the event is to be bubbled.

#### Return value

- `Object` - Event args instance passed in.

### hasEventListeners()

```javascript
hasEventListeners(name: String): Boolean
```
Returns true/false if the object has a event of the specified name.

#### Parameters

- `name (String)` - Name of the event to check for.

#### Return value

- `Boolean` - true/false if the event exists or not.

### off()

```javascript
off(name: String?, callback: callback?): Object
```
Unbinds an event listener to a specific event by name. Consult the [event reference](/docs/advanced/events) for more details on each event.

#### Examples

```javascript
// Unbind specific callback
instance.off('event', handler);

// Unbind all listeners by name
instance.off('event');

// Unbind all events
instance.off();
```

#### Parameters

- `name (String?)` - Name of the event to unbind.
- `callback (callback?)` - Callback to unbind.

#### Return value

- `Object` - Current class instance.

### on()

```javascript
on(name: String, callback: callback, prepend: Boolean): Object
```
Binds an event listener to a specific event by name. Consult the [event reference](/docs/advanced/events) for more details on each event.

#### Examples

```javascript
instance.on('event', function(e) {
    // Callback logic
});
```

#### Parameters

- `name (String)` - Event name or space separated list of events to bind.
- `callback (callback)` - Callback to be executed when the event occurs.
- `prepend (Boolean)` - Optional flag if the event should be prepended. Use this with care.

#### Return value

- `Object` - Current class instance.

### once()

```javascript
once(name: String, callback: callback): Object
```
Bind the event callback and once it fires the callback is removed. Consult the [event reference](/docs/advanced/events) for more details on each event.

#### Parameters

- `name (String)` - Name of the event to bind.
- `callback (callback)` - Callback to bind only once.

#### Return value

- `Object` - Current class instance.
