2013-04-07 3 views
2

Я хочу проверить, находится ли мышь в пределах видимой области div. Я знаю, что я мог бы использовать следующий код:Убедитесь, что мышка ВЫШЕ элемента jQuery

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

В JQuery.

Однако может быть другой div частично над моим #div, поэтому наведение не будет работать для моего случая.

Мне нужно проверить, находится ли мышь над элементом, независимо от того, какие элементы находятся над ним (предотвращая проверку наведения).

+2

Если «элемент B», который частично заслоняя ваш «элемент А», и не является потомком «элемента А», вам придется программно проверить положение «элемента А» относительно положения мыши. – ahren

+0

Я старался избегать этого. Но если это действительно единственный способ, мне придется это сделать. Благодарю. – Twinone

+0

Не беспокойтесь. Удачи! (PS, вероятно, хорошо поймать это событие на уровне «body» или на уровне ближайшего предка как на «элемент A», так и на «элемент B» - если расчет становится слишком большим для браузера, тогда подумайте о его дросселировании) – ahren

ответ

0

Если вам не нужны какие-либо действия для элемента над рассматриваемым div, вы можете просто применить указатели-события: none к нему. Это должно решить вашу проблему, и вы должны иметь возможность использовать $ ('# 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> 

Все самое лучшее, Шалом

Смежные вопросы