2013-09-10 2 views
3

IE 이벤트 mouseenter/mouseleave (또는 jQuery 이벤트의 변환)에 대한 polyfill이 생 성 JS 이벤트에 바인딩 될 수 있습니까?마우스 입력/이탈 Polyfill for Chrome/Firefox

I.E. 내가 사용 가능한 사용자 정의 이벤트해야합니다 알고

node.addEventListener('mouseenter', function() { 
    ... 
}); 

node.addEventListener('mouseleave', function() { 
    ... 
}); 

:

var event = new Event('mouseenter'); 
node.addEventListener('mouseenter', function (e) { ... }); 
node.dispatchEvent(event); 
etc 

답변

4

확인을, 내가 그것을 어떻게 알아 낸 것 :이 작업을 수행하는 크로스 브라우저 방법이

http://jsfiddle.net/HXwJH/5/

node.addEventListener('mouseover', function() {  
    if (!event.relatedTarget || (event.relatedTarget !== this && !(this.compareDocumentPosition(event.relatedTarget) & Node.DOCUMENT_POSITION_CONTAINED_BY))) { 
     this.dispatchEvent(new Event('mouseenter')); 
    } 
}); 

node.addEventListener('mouseout', function() {  
    if (!event.relatedTarget || (event.relatedTarget !== this && !(this.compareDocumentPosition(event.relatedTarget) & Node.DOCUMENT_POSITION_CONTAINED_BY))) { 
     this.dispatchEvent(new Event('mouseleave')); 
    } 
}); 
관련 문제