关于数据集的观察者

时间:2017-05-04 09:16:41

标签: javascript

我想在数据集上使用观察程序。这是我的代码:

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'

如何在不使用任何框架的情况下在数据集上使用观察器?

*编辑 我正在尝试构建一个可以实现到每个框架中的组件,并在数据集的值发生更改时向其节点添加类。

1 个答案:

答案 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
    });