Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果元素';是否更改了的显示属性?_Javascript_Javascript Events - Fatal编程技术网

Javascript 如果元素';是否更改了的显示属性?

Javascript 如果元素';是否更改了的显示属性?,javascript,javascript-events,Javascript,Javascript Events,比如: element.addEventListener("displayChanged", function(){ console.log("element.style.display changed.") }, false); 当然,这里没有displayChanged,但我想知道我该怎么做?只需要Chrome支持。您可以使用设置间隔进行轮询,并使用以下方法检查更改: <div onclick="this.style.display = 'none';">ha<

比如:

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

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

您可以使用
设置间隔进行轮询,并使用以下方法检查更改:

<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>
ha
(功能(){
var elm=document.getElementsByTagName('DIV')[0],
old=(elm.currentStyle | | window.getComputedStyle(elm,false)).display,
间隔=设置间隔(函数(){
var style=elm.currentStyle | | window.getComputedStyle(elm,false);
如果(旧的!==style.display){
间隔时间;
console.log('changed');
}
},120);
})();

如果要更改元素的显示属性,那么此时,可以使用自定义事件触发新事件。如果没有,您可以使用watch/unwatch。我不知道他们的情况。我只知道它们可能有用。:)

我想这是不可能的。你不能附加到改变元素样式的操作吗?@Andre我正在写一个GreaseMonkey脚本,以便向其他网站添加一些内容。你有很多元素要检查吗?