JavaScript:监听属性更改?
在JavaScript中是否可以监听属性值的更改?例如:JavaScript:监听属性更改?,javascript,attributes,event-handling,custom-events,Javascript,Attributes,Event Handling,Custom Events,在JavaScript中是否可以监听属性值的更改?例如: var element=document.querySelector('…'); element.addEventListener( ? ,doit,false); element.setAttribute('something','whatever'); function doit() { } 我想对something属性中的任何更改做出响应 我已经阅读了MutationObserver对象,以及其他替代对象(包括使用动画事件的
var element=document.querySelector('…');
element.addEventListener( ? ,doit,false);
element.setAttribute('something','whatever');
function doit() {
}
我想对something
属性中的任何更改做出响应
我已经阅读了
MutationObserver
对象,以及其他替代对象(包括使用动画事件的对象)。据我所知,它们是关于对实际DOM的更改。我更感兴趣的是对特定DOM元素的属性更改,所以我认为不是这样。当然,在我的实验中,它似乎不起作用
我希望在没有jQuery的情况下完成这项工作
感谢您所需要的,在代码片段中,我使用了setTimeout
来模拟修改属性
var-element=document.querySelector('#test');
setTimeout(函数(){
setAttribute('data-text','whatever');
}, 5000)
var观察者=新的突变观察者(功能(突变){
突变。forEach(功能(突变){
if(mutation.type==“attributes”){
log(“属性已更改”)
}
});
});
观察者,观察(元素){
属性:true//将其配置为侦听属性更改
});代码>
Dummy Text
MutationObserver
适用于此。只需将其配置为侦听属性更改。设置为只观察您感兴趣的元素。感谢您的回答和示例。一旦我简化了它,我认为它将是一种很好的技术,可以通过简单地更改和属性来对元素进行更复杂的更改。它使API变得更简单。您是否知道一个适用于基本浏览器的合理多边形填充?@Manngo,对于您可以使用的基本浏览器,我看到它目前支持IE9,并且在现代浏览器中仍然受支持。再次感谢。