Динамическое изменение структуры dom на ванильном js

Есть dom дерево, данные в нем меняются ajax запросами. На некоторых кнопках весят слушатели, и следовательно они удаляются, когда выполняется ajax запрос. Я попытался сделать через

element.addEventListener("DOMNodeInserted", function (event) {
    addButton();
    console.log('hi');
}, false);

И получается просто целая куча слушателей. Как от этого избавиться?


Ответы (1 шт):

Автор решения: Yakov Botov

Для того, чтобы избежать необходимости поддерживать большое кол-во активных слушателей событий, можно использовать технику делегирования событий.

Можно подвесить слушатель только на корневой элемент, а потом через всплытие события определять какой конкретно элемент это событие создал.

Такой подход, насколько я знаю, используется в react

https://learn.javascript.ru/event-delegation

→ Ссылка