Listeners API: слушатели без утечек
Управление пользовательскими обработчиками DOM-событий с автоматической очисткой.
Как получить экземпляр редактора
Методы ниже вызываются на редакторе, созданном через new Blok(). Они доступны после того, как разрешится editor.isReady.
// 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 для раннего удаления.
const button = document.querySelector('button');
const listenerId = editor.listeners.on(button, 'click', (e) => {
console.log('Button clicked');
});
// Store ID for later removallisteners.off(element, eventType, handler, useCapture?)
voidОтписаться от события на элементе.
Когда использовать
Снимает управляемый слушатель по элементу и обработчику; или используйте offById(), если сохранили id из on().
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() — чище, чем снова сопоставлять элемент и обработчик.
const listenerId = editor.listeners.on(button, 'click', handler);
// Later...
editor.listeners.offById(listenerId);