Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Какие есть, актуальные на сегодняшний день события, отслеживающие и срабатывающие в момент вставки/удаления DOM?

Константин Ефименко Гуру (3721), закрыт 4 года назад
Некоторые сайты отметили для себя, что такие DOM события как DOMNodeInserted, DOMNodeRemoved и т. д., на сегодняшний день являются устаревшими.

Вот пример такого сайта:
https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Mutation_events

Возникает вопрос, что применять в таком случае?

Где бы я не искал, на различных сайтах, форумах, справочниках везде предлагают использовать MutationObserver. Его конструкция является крайне дикой и не удобной в своём применении, больше напоминая голый JavaScript из которого ещё не успели сделать хоть какую-то функцию, но уже можно применять.

Я так же рассматривал варианты готовых модулей для jQuery, написанных при помощи CSS. Не смотря на то что они (казалось бы) работают, на деле проявляют себя не с лучшей стороны и как правило не выполняют даже элементарных действий с подсчётом. Кроме того, такие модули все как под копирку отслеживают лишь добавление элемента DOM, а об удалении разработчики явно никогда не слышали.

Существует ли адекватный эквивалент приведённым выше DOM событиям?
Лучший ответ
Noname Гений (69519) 4 года назад
можно создать свою легко используемую функцию с использованием MutationObserver, которая заточена под конкретно удаление или добавление элемента

типа

function lalala(document, callback функция для исполнения)
Константин ЕфименкоГуру (3721) 4 года назад
В том то и дело, в интернете только только начали появляться статьи о том, как применять MutationObserver. Ещё недавно даже на русском статей об этом не было, зато была всего одна, на английском, совершенно тезисно и кратко (совсем без объяснений).

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

"можно создать свою легко используемую функцию..."

На самом деле здесь очень спорно, должна ли это быть именно функция или же это должен быть всё-таки плагин. Я бы не стал так преждевременно утверждать, что функция в данном конкретном случае есть хорошо.
Эта функция мало кому нужна, поэтому по ней мало информации. Хочешь реализовать - разбирайся. На сайте Mozilla есть вся необходимая информация. Тут смешно написано: "MutationObserver. Его конструкция является крайне дикой и не удобной в своём применении, больше напоминая голый JavaScript" Это и есть "голый JavaScript". На сайте Mozilla документация по JS и API браузера, а не по jQuery или другой библиотеке.
Остальные ответы
Ярослав Искусственный Интеллект (107837) 4 года назад
Специалисту, настолько мощному чтобы критиковать стандартное решение и чужие плагины - не составит никакого труда написать свой, хороший и годный плагин для jQuery: реализующий нужный функционал, и при этом не обладающий критикуемыми свойствами.
Константин ЕфименкоГуру (3721) 4 года назад
Диванному эксперту не составит труда критиковать, вместо того, чтобы предоставить готовое (или частично готовое) решение. Кроме того, я не говорил что являюсь специалистом в области составления плагинов на jQuery или что вообще являюсь хоть каким-то специалистом в какой-либо области.

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

Хочу верно подметить, что я в поисках готового, здраво оформленного решения.
Ярослав Искусственный Интеллект (107837) Что именно ты хотел сказать своим комментарием? Вырази свою мысль внятно, пожалуйста.
Похожие вопросы