一尘不染

使用Jquery更改CSS属性时事件检测

javascript

有没有一种方法可以检测元素的“ display” css属性是否已更改(更改为none还是block或inline-block
…)?如果没有,有插件吗?谢谢


阅读 764

收藏
2020-04-25

共1个答案

一尘不染

注意

Level-2-Events/events.html#Events-eventgroupings-mutationevents);其中之一-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可靠地检测更改。

2020-04-25