FINoM, плохо доку прочитал) Там есть фильтры, можно слушать только те атрибуты, которые тебе нужны (смотри "attributeFilter").
И да, раньше были MutationEvents, они были синхронными, и вот это было действительно медленно. |
И ещё: по поводу value -- меня полностью удовлетворяет oninput event (который, кстати, срабатывает и для элементов с contenteditable="true").
|
trikadin, дык, понятно, я могу слушать oninput, но я хочу слушать изменение свойства, а не DOM событие или изменение атрибута.
|
Цитата:
|
Цитата:
|
FINoM, так чем MutationObserver не устраивает, в итоге? Если ты начнёшь наблюдать за одним атрибутом value, то ты получишь оповещение о его изменении, что тебе и нужно, и при этом это будет асинхронно, что хорошо, ибо не тормозит отрисовку DOM'а.
|
trikadin, я имею в виду не атрибут а свойство. Его разве можно слушать?
|
FINoM, ну, ты узнаёшь об обновлении атрибута, и, соответственно, свойства, которое с ним синхронизировано. Не понимаю, видимо, в чём твоя проблема.
|
trikadin, эм, я никогда не работаю с атрибутами, если есть возможность изменить свойство.
|
Цитата:
<a id="search-link" href="http://google.com/" data-search="google" title="Гугл">Google</a> <script> 'use strict'; const link = document.querySelector('#search-link'), observer = new MutationObserver((mutationsList) => { console.log(mutationsList); }); observer.observe(link, { childList: true, attributes: true }); link.href = 'http://yandex.ru/'; link.title = 'Яндекс'; link.dataset.search = 'yandex'; link.textContent = 'Yandex'; </script> Смотреть в консоль. |
Часовой пояс GMT +3, время: 16:21. |