javascript - 数据集观察者

标签 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'

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

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

最佳答案

在寻找更好的解决方案后,我发现了 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/

相关文章:

javascript - Firefox 扩展中的 SQLite3 错误

php - 我想使用 AJAX 函数验证验证码

javascript - 动态分配数据角色属性

javascript - AngularJS 和嵌入式框架 html

javascript - 应用于所有字段时,Google 图表文字字符串工具提示错误

javascript - 使用 onload 函数禁用按钮,javascript

javascript - 转换javascript中的日期格式

javascript - 尝试安装 grunt 时出错

javascript - 两个具有不同行为的相同 jQuery 脚本

javascript - 事件循环和同步阻塞