Предположим, у меня есть функция javascript createMyElement
, которая возвращает узел, который можно вставить в документ HTML.
Для правильного функционирования код узла, созданный createMyElement
, должен прослушивать события в глобальном document
как минимум, как только он вставлен в документ.
Моей первой попыткой было добавление DOMNodeInsertedIntoDocument
и DOMNodeRemovedFromDocument
прослушивателей к узлу во время создания, которые по очереди добавляют и удаляют требуемый прослушиватель на document
.
Однако события мутации уже устарели (и, похоже, не работают надежно во всех браузерах), поэтому я ищу лучшее решение.
Добавление обработчика событий на document
во время создания узла будет работать. Однако это не кажется хорошим решением, так как это приведет к утечке памяти и производительности: даже после того, как узел был удален из документа и больше не нужен, слушатель (и его ссылки на узел) в document
все еще сохранится.