我想在数据集上使用观察程序。这是我的代码:
HTML:
<div id='my-hidden-content' data-is-collapsed='true'>My hidden content</div>
使用Javascript:
document.getElementById('my-hidden-content').dataset.watch('isCollapsed', function(id, oldval, newval) {
console.log('Collapsed changed', id, oldval, newval)
});
我的控制台发出此错误:
'Uncaught TypeError: document.getElementById(...).dataset.watch is not a function'
如何在不使用任何框架的情况下在数据集上使用观察器?
*编辑 我正在尝试构建一个可以实现到每个框架中的组件,并在数据集的值发生更改时向其节点添加类。
答案 0 :(得分:0)
在寻找更好的解决方案之后,我发现MutationObserver
给了我很多帮助。
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.attributeName === 'data-is-collapsed') {
// do something
}
});
});
observer.observe(document.getElementById('my-hidden-content'), {
attributes: true, childList: false, characterData: false
});