---
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/latest/apis/tinymce.util.observable/index.md"
version: "latest"
last_updated: "2025-08-14T03:11:33Z"
tokens: 1102
---
# tinymce.util.Observable

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

## Summary

### Methods

| Name | Summary | Defined by |
| --- | --- | --- |
| [dispatch()](#dispatch) | Dispatches the specified event by name. Consult the [event reference](/docs/tinymce/8/events/) for more details on each event. | `Observable` |
| [fire()](#fire) | Fires the specified event by name. Consult the [event reference](/docs/tinymce/8/events/) for more details on each event. <br> *Deprecated in TinyMCE 6.0 and has been marked for removal in TinyMCE 9.0. Use `dispatch` instead.* | `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/tinymce/8/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/tinymce/8/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/tinymce/8/events/) for more details on each event. | `Observable` |

## Methods

### dispatch()

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

#### Examples

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

#### Parameters

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

#### Return value

- `Object` - Event args instance passed in.

### fire()

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

*Deprecated in TinyMCE 6.0 and has been marked for removal in TinyMCE 9.0. Use `dispatch` instead.*

#### 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: Function?): Object
```
Unbinds an event listener to a specific event by name. Consult the [event reference](/docs/tinymce/8/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 (Function?)` - Callback to unbind.

#### Return value

- `Object` - Current class instance.

### on()

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

#### Examples

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

#### Parameters

- `name (String)` - Event name or space separated list of events to bind.
- `callback (Function)` - 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: Function): Object
```
Bind the event callback and once it fires the callback is removed. Consult the [event reference](/docs/tinymce/8/events/) for more details on each event.

#### Parameters

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

#### Return value

- `Object` - Current class instance.
