2011-07-04 2 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

을 새로운 이벤트를 트리거하십시오. 그렇지 않은 경우 watch/unwatch를 사용할 수 있습니다. 나는 그들에 대해 모른다. 나는 그들이 유용 할 수 있다는 것을 알고 있습니다. :)

관련 문제