如果元素的显示属性发生更改,如何触发事件?

时间:2011-07-04 16:56:11

标签: javascript javascript-events

类似的东西:

element.addEventListener("displayChanged", function(){
    console.log("element.style.display changed.")
}, false);  

当然,那里没有displayChanged,但我想知道我该怎么做?只需要Chrome支持。

2 个答案:

答案 0 :(得分:2)

您可以使用setInterval进行投票,并使用以下内容检查更改:

<div onclick="this.style.display = 'none';">ha</div>
<script>
(function(){
  var elm = document.getElementsByTagName('DIV')[0],
    old = (elm.currentStyle || window.getComputedStyle(elm, false)).display,
    interval = setInterval(function(){
      var style = elm.currentStyle || window.getComputedStyle(elm, false);
      if(old !== style.display){
        clearInterval(interval);
        console.log('changed');
      }
    },120);
})();
</script>

答案 1 :(得分:0)

如果要更改元素的display属性,那么在此刻,您可以使用自定义事件来触发新事件。如果没有,您可以使用手表/非手表。我不知道他们。我只知道它们可能有用。 :)