Javascript 具有特定突变的突变观察者

Javascript 具有特定突变的突变观察者,javascript,events,mutation-observers,Javascript,Events,Mutation Observers,我目前正在尝试使用激发一条消息,稍后将是基于元素类更改的函数 我目前正在触发一个关于突变变化的日志,但我假设有一些突变正在触发,比如DOM位置等。有没有办法让MutationObserver只查找特定的属性(在本例中是类) 作为一名Drupal开发人员,我习惯于使用jQuery,这就是为什么我喜欢使用classList函数链接 这是我的密码: var foo=document.getElementByIdfoo; var wrapper=document.getElementByIdwrapp

我目前正在尝试使用激发一条消息,稍后将是基于元素类更改的函数

我目前正在触发一个关于突变变化的日志,但我假设有一些突变正在触发,比如DOM位置等。有没有办法让MutationObserver只查找特定的属性(在本例中是类)

作为一名Drupal开发人员,我习惯于使用jQuery,这就是为什么我喜欢使用classList函数链接

这是我的密码:

var foo=document.getElementByIdfoo; var wrapper=document.getElementByIdwrapper; var observer=新突变ObserverFunction突变{ 突变{ 如果mutation.attributeName==类{ var attributeValue=mutation.target.GetAttributeStation.attributeName; console.logClass属性更改为:,attributeValue; } }; }; 函数类列表{ var list=el.classList; 返回{ add:函数C{ if!list.containsc{ console.log'包含:'+list.containsc; list.addc; } 归还这个; }, 删除:函数c{ if!list.containsc{ list.removec; } 归还这个; } }; } 观察者,观察者{ 属性:true }; wrapper.addEventListenerscroll,函数{ classListfoo。添加“红色”。删除“黄色”; ifwrapper.scrollTop>500{ classListfoo。添加“黄色”。删除“红色”; } }; 包装纸{ 高度:200px; 溢出:滚动; } 福{ 高度:1000px; } 要素
尽管@wOxxOm在他的评论中回答了我的问题,但我在功能上应用了该选项,并意识到我不再需要forEach,因为我只需要一个单数属性,因此完成的测试代码如下所示:

var foo=document.getElementByIdfoo; var wrapper=document.getElementByIdwrapper; var observer=新突变ObserverFunction突变{ console.log'Current class:'+mutation[0].target.className; }; 观察者,观察者{ 属性:正确, attributeFilter:['class'] }; wrapper.addEventListenerscroll,函数{ ifwrapper.scrollTop>500{ if!foo.classList.包含'yellow'{ foo.classList.add'yellow'; foo.classList.remove'red'; } }否则{ if!foo.classList.包含'red'{ foo.classList.add'red'; 类列表。删除“黄色”; } } }; 包装纸{ 高度:200px; 溢出:滚动; } 福{ 高度:1000px; } 要素
尽管@wOxxOm在他的评论中回答了我的问题,但我在功能上应用了该选项,并意识到我不再需要forEach,因为我只需要一个单数属性,因此完成的测试代码如下所示:

var foo=document.getElementByIdfoo; var wrapper=document.getElementByIdwrapper; var observer=新突变ObserverFunction突变{ console.log'Current class:'+mutation[0].target.className; }; 观察者,观察者{ 属性:正确, attributeFilter:['class'] }; wrapper.addEventListenerscroll,函数{ ifwrapper.scrollTop>500{ if!foo.classList.包含'yellow'{ foo.classList.add'yellow'; foo.classList.remove'red'; } }否则{ if!foo.classList.包含'red'{ foo.classList.add'red'; 类列表。删除“黄色”; } } }; 包装纸{ 高度:200px; 溢出:滚动; } 福{ 高度:1000px; } 要素
根据文档使用attributeFilter:['class'],这是让成年人查看的典型案例。多谢各位@wOxxOm@wOxxOm我应该删除这个问题吗?或者你会将你的评论转移到一个答案上,我会接受吗?根据文档使用attributeFilter:['class'],这是让成年人看的典型案例。多谢各位@wOxxOm@wOxxOm我应该删除这个问题吗?或者你会把你的评论转移到一个答案上,我会接受吗?