Набросок кода для обсуждения на форуме.
Компонент у которого есть пользовательские обработчики событий дочерних элементов. Эти обработчики навешиваются на элементы. Потом этот компонент надо удалить со страницы, и чтобы память освободить от обработчиков их надо удалить прежде чем удалить сам компонент. Это очень простой пример, на деле задачи могут быть намного сложнее... что-то типа при клике на кнопку отключить срабатывание того или иного события и создание других и тд
- чтобы не было лишних переменных для хранения обращения к колбекам
- отслеживать изменения текста в элементе. При это в MutationRecord использовать type = characterData (максимально странно для ТЗ, все же это уже про реализацию, а не задачу. Кроме того - по сути просто добавление фильтрации)
Для просмотра кода соответствующей версии переходите по тегам
- v4 - небольшой фикс
- v3 - уменьшил кол-во переменных, обработчики у всех кнопок наглядно разные, динамическое добавление кнопки не через конфиг. Запрос удаления кнопки, отслеживание факта изменения редактируемого текста.
- v2 - разбил на разные классы и добавил кнопку удаления всего тулбара
- v1 - первое приближение