DOM и React Middle События обновлено
Делегирование событий
Условие
Навесь на контейнер ОДИН обработчик, который при клике по любой кнопке с data-id внутри добавляет её id в массив clicks. Верни функцию отписки.
Что проверяют тесты
ловит клик по вложенному узлу
работает для узлов, добавленных позже
отписка снимает обработчик
Как подойти
Делегирование: один обработчик на контейнер вместо N на элементы. Работает благодаря всплытию, поэтому автоматически покрывает узлы, добавленные после навешивания - главный аргумент в пользу приёма. Пара e.target + closest обязательна: target может быть вложенным span, а не самой кнопкой.
Подсказки: 2
- e.target - самый глубокий узел, по которому кликнули, а не тот, на котором висит обработчик.
- closest поднимается вверх по дереву и находит ближайшего подходящего предка.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.