DOM и React Middle События обновлено

Делегирование событий

Условие

Навесь на контейнер ОДИН обработчик, который при клике по любой кнопке с data-id внутри добавляет её id в массив clicks. Верни функцию отписки.

Что проверяют тесты

  • ловит клик по вложенному узлу

  • работает для узлов, добавленных позже

  • отписка снимает обработчик

Как подойти

Делегирование: один обработчик на контейнер вместо N на элементы. Работает благодаря всплытию, поэтому автоматически покрывает узлы, добавленные после навешивания - главный аргумент в пользу приёма. Пара e.target + closest обязательна: target может быть вложенным span, а не самой кнопкой.

Подсказки: 2
  1. e.target - самый глубокий узел, по которому кликнули, а не тот, на котором висит обработчик.
  2. closest поднимается вверх по дереву и находит ближайшего подходящего предка.

Решите в тренажёре

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

Термины по теме