检测鼠标是否在元素上

时间:2014-11-25 16:42:11

标签: javascript jquery

如果鼠标位于div事件之上,我如何得到一个非常简单的true / false语句= true else event = false

  var test = $("#main-nav").on("mouseenter", function (e) {
    e.preventDefault();
    console.log(e.preventDefault());
    return true;
});

if (test === true) {
   //do something
} else {
   //something different
}

3 个答案:

答案 0 :(得分:6)

如果我理解你的问题:

if($("#main-nav").is(":hover")) {
   //do something
}else{
   //something different
}

在伪代码中:

if the cursor is over #main-nav
    do something
if it's not
    do something else

如果您希望始终设置test

var test = false;
$("#main-nav").on("mouseenter", function(e){
    e.preventDefault();
    test = true;
}).on("mouseleave", function(e){
    e.preventDefault();
    test = false;
});

这样,

if(test === true) {
   //do something
}else{
   //something different
}

始终工作。

答案 1 :(得分:0)

你可以有一个布尔(true / false)变量,通过这样做不断更新:

var hovering;
$("#main-nav").mouseenter(function(){
    hovering = true;
});
$("#main-nav").mouseleave(function(){
    hovering = false;
});

所以每当它被调用时它都会告诉你鼠标是否在你的div中:

if (hovering){
    // mouse within div
} else {
    // mouse not within div
}

答案 2 :(得分:0)

如果您一定需要作为变量:

var test = false;
$("#main-nav").on("mouseenter", function (e) {
    test = true;
});
$("#main-nav").on("mouseout", function (e) {
    test = false;
}); 

//....

if (test === true) {
   //do something
} else {
   //something different
}