2013-04-07 3 views
2

마우스가 현재 div의 보이는 영역 내에 있는지 확인하고 싶습니다. 다음 코드를 사용할 수 있음을 알고 있습니다.마우스가 ABOVE 요소인지 확인 jQuery

$("#div").is(":hover"); 

In jQuery.

그러나 부분적으로 내 #div 위에 다른 div가있을 수 있으므로 마우스를 움직여도 내 케이스가 작동하지 않습니다.

마우스가 요소 위에 있는지 여부를 확인해야합니다 (마우스 오버 방지를 방지).

+2

당신의 "요소 A"를 가리는 부분이며, "요소 A"의 자손 아니다 "요소 B는"당신은 프로그래밍을 확인해야하는 경우 마우스 위치에 대해 "요소 A"의 위치. – ahren

+0

나는 그것을 피하려고 오히려 노력하고있었습니다. 그러나 그것이 정말로 유일한 길이라면, 나는 그렇게해야 할 것입니다. 감사. – Twinone

+0

걱정할 필요가 없습니다. 행운을 빕니다! (추신 :이 이벤트를 'body'레벨에서, 또는 가장 가까운 조상의 레벨에서 'element A'와 'element B'모두에 맞출 가능성이 높습니다. 계산이 브라우저에서 너무 많아지면 조절을 고려하십시오) – ahren

답변

0

문제의 div 위의 요소에 적용 할 동작이 필요없는 경우 간단하게 포인터 이벤트를 적용하면됩니다. 이렇게하면 문제가 해결되어 $ ('# div'). hover()를 사용할 수 있습니다.

시험 예.

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>TEST</title> 
    <style> 
     div { 
      width:50px; 
      height:50px; 
      position:absolute; 
     } 
     div#one { 
      top:0; 
      background:orange; 
     } 
     div#two { 
      top:20px; 
      background:blue; 
      opacity:1; 
      pointer-events:none; 
     } 
    </style> 
</head> 
<body> 
    <div id="one"> 
    </div> 
    <div id="two"> 
    </div> 
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
    <script> 
    $(function(){ 
     $('div#one').click(function(){ 
      alert('one-clicked'); 
     }); 
     $('div#one').hover(function(){ 
      console.log('one is being hovered!') 
     }); 
    }); 
    </script> 
</body> 
</html> 

모든 최고의, 샬롬

관련 문제