方法一:
以页面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中'); };