---
title: "Listeners API — управляемые DOM-слушатели"
description: "DOM-слушатели, которые Blok снимает сам при уничтожении редактора, чтобы инструмент не оставлял утечек."
source: https://blokeditor.com/ru/docs/listeners-api/
lastmod: 2026-09-07
---

Фреймворк JavaScript

Расширение и система Слушатели

На этой странице listeners.on(element, eventType, handler, useCapture?)

# Listeners API: слушатели без утечек

Управление пользовательскими обработчиками DOM-событий с автоматической очисткой.

[Редактировать на GitHub](https://github.com/JackUait/blok/blob/main/docs/src/components/api/api-data.ts)

### Как получить экземпляр редактора

Методы ниже вызываются на редакторе, созданном через new Blok(). Они доступны после того, как разрешится editor.isReady.

TypeScript

```
// You already hold the instance returned by the constructor.
const editor = new Blok({ holder: 'editor' });
await editor.isReady;

// Call any API method on it.
editor.caret.setToLastBlock('end');
```

## Методы

### listeners.on(element, eventType, handler, useCapture?)

string | undefined

Подписаться на событие на элементе. Возвращает id слушателя для удаления.

Когда использовать

Управляемый `addEventListener` — Blok отслеживает слушатель и снимает его при `destroy()`, предотвращая утечки. Сохраните возвращённый id для раннего удаления.

TypeScript

```
const button = document.querySelector('button');
const listenerId = editor.listeners.on(button, 'click', (e) => {
  console.log('Button clicked');
});

// Store ID for later removal
```

### listeners.off(element, eventType, handler, useCapture?)

void

Отписаться от события на элементе.

Когда использовать

Снимает управляемый слушатель по элементу и обработчику; или используйте `offById()`, если сохранили id из `on()`.

TypeScript

```
const handler = (e) => console.log('Clicked');
editor.listeners.on(button, 'click', handler);
editor.listeners.off(button, 'click', handler);
```

### listeners.offById(id)

void

Отписаться от события по id слушателя.

Когда использовать

Снимает слушатель по id, возвращённому `on()` — чище, чем снова сопоставлять элемент и обработчик.

TypeScript

```
const listenerId = editor.listeners.on(button, 'click', handler);
// Later...
editor.listeners.offById(listenerId);
```
