2011-07-04 41 views
2

喜歡的東西:如何在元素的顯示屬性發生變化時觸發事件?

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

當然,沒有displayChanged有,但我不知道我該怎麼辦呢?只需要Chrome支持。

+0

我認爲沒有辦法做到這一點。你不能附加到更改元素樣式的操作嗎? – Andre

+0

@Andre我正在寫一個GreaseMonkey腳本來添加一些東西到其他網站 – wong2

+0

你有很多元素來檢查? – Mic

回答

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> 
0

如果您要改變元素的顯示屬性,那麼在這個時候,你可以使用自定義事件觸發新事件。如果沒有,您可以使用手錶/不手錶。我不知道他們。我只知道他們可能會有用。 :)

相關問題