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

Фреймворк JavaScript

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

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

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

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

Обновлено 8 сент. 2026 г. [Редактировать на 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

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

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

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

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);
```
