2009-11-05 5 views
0

링크를 포함하는 div에 mouseover 이벤트를 만들려고합니다. 마우스가 div 위로 지나갈 때 배경이 모든 div에 올바르게 적용되지만 마우스가 링크 위에 있으면 배경에만 적용됩니다. 이유는 무엇입니까?JS 및 프로토 타입 : 마우스 오버가 위에있는 요소에 영향을 미치는 이유는 무엇입니까?

div의 링크 이므로 논리적으로 div에서 내 이벤트를 호출해야합니다.

 
----------------------------------------------------------- 
| |link|            | 
----------------------------------------------------------- 
<div id="a" style="width:100%;"> 
     <a href="">bob</a> 
</div> 

<script type="text/javascript"> 
    $("a").observe('mouseover', function(e) { 
      Event.element(e).setStyle({backgroundColor: '#900'}); 
    }); 

    $("a").observe('mouseout', function(e) { 
       Event.element(e).setStyle({backgroundColor: '#fff'}); 
    }); 
</script> 

답변

2

지속적으로 참조하는 이벤트 핸들러 내부에 사용 this 사업부 핸들러는 결합했다 :

$("a").observe('mouseover', function() { 
    this.setStyle({backgroundColor: '#900'}); 
}); 

$("a").observe('mouseout', function() { 
    this.setStyle({backgroundColor: '#fff'}); 
});