Поймать событие изменения data-*
Привет всем!
Возникает ли какое-то событие при изменении атрибута DOM-элемента data? .change() , как я понял, не срабатывает. Т.е.: если где-то выполняется $('#some_selector').data('id', 'some_value'), то можно ли повесить обработчик на событие изменения .data('id')? |
dmsuslov, нет событий по изменению свойств или атрибутов элементов... :no:
|
Цитата:
|
Не так изящно получается... Действительно, видимо придется "вручную" генерировать событие :-)
Спасибо ответившим! |
<body>
<input type="button" id="test_value" data-id="off" value="Click Me">
<script>
window.onload = function(){
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
var observer = new MutationObserver(function(mutations){
mutations.forEach(function(mutation){
console.dir(mutation)
alert(mutation.attributeName + ' Value: ' + target.getAttribute(mutation.attributeName));
});
});
var target = document.getElementById('test_value');
observer.observe(target, {attributes: true});
target.addEventListener('click', function(){
this.dataset.id = 'on';
});
}
</script>
</body>
вариант использования Observer, думаю, что еще через гетеры сеттеры можно реализовать |
| Часовой пояс GMT +3, время: 03:25. |