检测属性显示从无显示到显示块
detect property display from no display to display block
我试图检测元素显示属性何时发生变化。最初,元素没有显示属性。我想在元素发生变化时发出警报。我已经尝试了下面的代码,但没有警报。
document.getElementById('xxx').addEventListener('DOMAttrModified', function(e){
if (e.attrName === 'style') {
if (e.newValue === 'block') {
alert('test!');
}
}
}, false);
setTimeout(function () {
var xxx = document.getElementById('xxx');
xxx.style.display = 'block';
console.log(xxx);
}, 5000);
下面是一个演示如何使用突变观察器的实际示例。请注意,我使用了WebKit前缀MutationObserver实现,但你提到你正在使用Chrome,所以你至少可以测试这个,如果必要的话,根据你的需求进行调整。
首先,我们创建MutationObserver
并为其提供回调。这个回调将被调用2个参数- MutationRecord
实例的数组,其次是MutationObserver
的实例(负责被调用的回调)。这在将单个回调附加到多个mutationobserver时非常有用。注意,它接收一个MutationRecords数组,而不是为每个MutationRecord调用一次。这允许将它们捆绑在一起,这对于提高性能是必要的。
var observer = new WebKitMutationObserver(function(mutations) {
console.log(mutations);
});
现在我们创建(一个可选的)配置对象,以指定我们感兴趣的突变类型。在本例中,是一个属性的突变。
var config = { attributes: true };
注意,尽管我们在这里将它定义为一个简单对象,但它实际上将被用作MutationObserverInit对象。
现在,最后,我们告诉观察者观察一个节点:
observer.observe(document.getElementById('xxx'), config);
如果您感兴趣,我将您的示例改编为jsFiddle演示。
相关文章:
- 可以转换显示属性吗?如果没有,什么'这是最好的解决方案
- hasOwnProperty-即使有属性,也不会显示属性
- 如何从django表单库中隐藏复选框,并使用Javascript切换其显示属性
- 在 jsp 中显示属性文件的值,而不使用 scriptlet
- 脚本点击Css显示属性更改不正常运行Asp.net
- 如何显示属性文件中的消息
- 谷歌地图Api在CRM Dynamics 2011 iframe"不可能使用显示属性“;消息
- 如何在springMVC中以javascript显示属性文件中的值
- 使用Javascript,如何在不同的HTML页面上更改CSS显示属性
- 如何将显示属性设置为与内联!重要的
- JavaScript 函数在尝试更改显示属性时不会生效
- CSS3 过渡淡出显示属性
- CSS 显示属性不起作用
- 无法使用 javascript 更改显示属性
- 如何使用 JavaScript 更改 CSS 显示属性
- JS - 无法更改颜色,但可以更改显示属性
- Chrome I JavaScript 关于更改 CSS 中的显示属性的问题
- ng-if :隐藏/显示属性.怎么做
- JavaScript/CSS:更改显示属性
- 使用 javascript 检索显示属性