如何检查游标是否在div上

时间:2014-03-13 04:47:59

标签: javascript jquery

点击链接后,我会弹出一个弹出窗口。这是我的弹出代码

<div class='' id="custom-popover">
    <div class="arrow"></div>
    <h3 class="popover-title">Popover left</h3>
    <div class="popover-content" id="details-container">
    </div>
  </div>
</div>

我还在弹出show时使用jquery添加一些html代码。现在我想检查光标是否在此弹出窗口上,或者如果用户将鼠标悬停在此弹出窗口上,然后我显示警告消息,否则隐藏弹出窗口。我怎样才能做到这一点?我试过这样的事情

var isHovered = $('#custom-popover').is(":hover");
if (isHovered){
alert("msg"); 
} else {
 $('#custom-popover').hide();
 }

但这不起作用。我怎么能这样做?

5 个答案:

答案 0 :(得分:2)

使用全局变量:

var cursorOnDiv = false;

$(document).on({
        mouseenter:function(){ cursorOnDiv = true; },
        mouseleave:function(){ cursorOnDiv = false; },
    }, 
   '#yourDivId'
);

并检查他

答案 1 :(得分:1)

有点像这样,

$( "#custom-popover" ).mouseover(function() {
     $('#custom-popover').hide();
});
根据{{​​3}},函数is()在回调中通常很有用,例如事件处理程序。 此函数只运行一次,因为它不是回调。因此,为了检测悬停事件,请使用回调。

如果你想进入和离开两者,你甚至可以这样,

$( "custom-popover" )
.mouseenter(function() {

})
.mouseleave(function() {

})

答案 2 :(得分:1)

试一试:

$("#custom-popover").hover(
   function() {
       $("#custom-popover").show();
   },
   function() {
       $("#custom-popover").hide();
});

答案 3 :(得分:0)

这就是你问的问题:

$("#custom-popover").hover(
   function() {
       alert("Hovering now");
       $("#custom-popover").show();
   },
   function() {
       $("#custom-popover").hide();
});

您存储了一个值,无论#custom-popover是否在执行时被悬停,您没有绑定eventListenerhover)以查找原因。

答案 4 :(得分:-1)

试试这个:

if($('#custom-popover:hover'))
{
       alert("msg");
}
else 
{
      $('#custom-popover').hide();
}