2011-07-04 6 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でポーリングして、のようなもの使用して変更を確認することができます:あなたは要素のdisplayプロパティを変更する場合

<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

を、その瞬間に、あなたにカスタムイベントを使用することができます新しいイベントをトリガーします。そうでない場合は、watch/unwatchを使用できます。私はそれらについて知りません。私は彼らが役に立つと知っているだけです。 :)

関連する問題