突变观察者字符数据使用情况,没有子列表
MutationObserver characterData usage without childList
直到最近,我还认为在添加/删除子节点时使用MutationObserver
上的childList : true
例如,从<span id='mama-span'> </span>
到<span id='mama-span'><span id='baby-span'></span></span>
并且characterData : true
当观察到的元素中的文本 chages e.t <span> </span>
到 <span> with some text </span>
时使用。事实证明,要观察文本更改,需要添加childList : true
。
谁能想到在没有子列表的情况下使用字符数据的情况?它的用途是什么?
您可以直接观察文本节点。在这种情况下,您无需观察 childList。在许多情况下,它可能很有用,例如在可内容可编辑的元素中。喜欢这个:
// select the target node
var target = document.querySelector('#some-id').childNodes[0];
// create an observer instance
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
console.log(mutation.type);
});
});
// configuration of the observer:
var config = { attributes: true, childList: false, characterData: true };
// pass in the target node, as well as the observer options
observer.observe(target, config);
<div id='some-id' contenteditable='true'>Modify content</div>
相关文章:
- 默认情况下折叠和展开嵌套列表
- Netsuite Suitelet:在不达到治理限制的情况下,遍历事务行项目的列表加载和提交记录
- 在不向上滚动的情况下向列表框中添加项目
- 在没有大量回调函数的情况下在列表元素上循环播放同一动画
- 是否可以在不使用jQuery的情况下在下拉列表中选择选项
- 在不涉及控制器的情况下对MVC视图列表中的项进行排序
- 有没有一种方法可以在没有jQuery的情况下获得JavaScript中当前添加到后台的事件列表
- 在我的情况下,如何在角度中对对象列表进行排序
- 如何在禁用 JavaScript 的情况下维护下拉列表的持久性状态 - PHP
- 如何在不重新填充列表的情况下维护下拉列表的当前信息
- 默认情况下,在 angularjs 中选择下拉列表中的最后一个位置显示占位符
- 如何在具有某些条件的情况下从列表中删除重复项,下划线.js
- 默认情况下,从数据列表中选择第一条记录
- Javascript 下拉列表具有多个值的情况
- 如何在没有ng重复的情况下制作模板,并使用角度拖放列表将数据传递给$scope
- 如何在不使用内联 javascript 的情况下修改选择下拉列表的默认值
- 挖空:在不清除视图模型中的值的情况下更改选择列表中的选项
- 我可以在不通过下拉列表的情况下让 jQuery 自动完成以匹配输入吗?
- AngularUI:在应用过滤器的情况下正确更新两个列表之间的模型
- 在不使用按钮的情况下显示列表,带有挖空功能