当使用Jquery更改css属性时检测事件
有没有办法来检测元素的“显示”CSS属性是否更改(无论是否或块或内联块...)? 如果没有,任何插件? 谢谢
是的你可以。 DOM L2事件模块定义突变事件; 其中之一 - DOMAttrModified是你需要的。 当然,这些并没有得到广泛的实施,但至少在Gecko和Opera浏览器中得到支持。
尝试一下这些方面的内容:
document.documentElement.addEventListener('DOMAttrModified', function(e){
if (e.attrName === 'style') {
console.log('prevValue: ' + e.prevValue, 'newValue: ' + e.newValue);
}
}, false);
document.documentElement.style.display = 'block';
您也可以尝试利用IE的“propertychange”事件来替代DOMAttrModified
。 它应该允许可靠地检测style
变化。
你可以使用attrchange jQuery插件。 插件的主要功能是在HTML元素的属性更改上绑定侦听器函数。
代码示例:
$("#myDiv").attrchange({
trackValues: true, // set to true so that the event object is updated with old & new values
callback: function(evnt) {
if(evnt.attributeName == "display") { // which attribute you want to watch for changes
if(evnt.newValue.search(/inline/i) == -1) {
// your code to execute goes here...
}
}
}
});
您可以使用jQuery的css
函数来测试CSS属性,例如。 if ($('node').css('display') == 'block')
。
科林是对的,没有明确的事件会在特定的CSS属性发生变化时被触发。 但是你可能会翻转它,并触发设置显示的事件,以及其他任何事情。
另外考虑使用添加CSS类来获得你想要的行为。 通常你可以添加一个类到一个包含元素,并使用CSS来影响所有元素。 我经常将一个类放在body元素上以表明AJAX响应正在等待处理。 然后我可以使用CSS选择器来获得我想要的显示。
不知道这是你在找什么。
链接地址: http://www.djcxy.com/p/83371.html