我想在数据集上使用观察器。这是我的代码:
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'
如何在不使用任何框架的情况下在数据集上使用观察器?
*编辑 我尝试构建一个可以在每个框架中实现的组件,并在数据集的值发生变化时向其节点添加类。
最佳答案
在寻找更好的解决方案后,我发现了 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
});
关于javascript - 数据集观察者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43778726/