jQuery判断鼠标是否在某个元素内

方法一:

以页面header为例:

(判断鼠标是否在一级菜单里,如果不在一级菜单,是否在二级菜单)

$('#header').mousemove(function(e){
if($.contains($("#navUl")[0],e.target) || $("#navUl")[0]==e.target){
// console.log('在menu中')
}else{
// console.log('不在menu中');
if($.contains($("#submenu")[0],e.target) || $("#submenu")[0]==e.target){
// console.log('在二级menu中')
}else{
// console.log('不在二级menu中');
$("#navUl>li").removeClass('active');
}
}
}

(参考:jquery里判断一个标签元素是否包含另一个标签元素,即一个标签元素是否为另一个标签元素的子标签的方法

  摘自 爱jQuery:http://www.aijquery.cn/Html/jqueryhanshu/131.html

  http://www.aijquery.cn/Html/jqueryshili/182.html

方法二: 传统方法: Jquery获取鼠标位置和判断鼠标是否在DIV中

$(document).mousemove(function(e){ 
     x = e.pageX;
         y = e.pageY; 
});
 
//x的值相对于文档的左边缘。y的值相对于文档的上边缘
//x,y是全局变量;
//判断鼠标是否在某DIV中
var div = $('.dream');//获取你想要的DIV
var y1 = div.offset().top;  //div上面两个的点的y值
var y2 = y1 + div.height();//div下面两个点的y值
var x1 = div.offset().left;  //div左边两个的点的x值
var x2 = x1 + div.width();  //div右边两个点的x的值
 
if( x < x1 || x > x2 || y < y1 || y > y2){
    alert('鼠标不在该DIV中');
}else{
    alert('鼠标在该DIV中');
};