制作鼠标悬停二级菜单时,jQuery鼠标同时移出两个区域的判断

当我们制作一个鼠标悬停在一级菜单按钮上展示二级菜单的功能时


a: 按钮  b:菜单

需求: 鼠标移到a上,显示b, 从a或b上移走,隐藏b


这里有一个问题是, 当移到a上时候 b显示了, 我们要把鼠标移到b上进行下一步操作, 但是一旦向b上移动,就离开了a,这时触发了离开a的事件--b被隐藏, 貌似无论如何也无法将鼠标移到b上


解决方法:

划重点:

这种效果需要B区域至少有一部分地方跟A区域是重合的


①:B在A里面:

html

1
2
3
< div  style = "width:200px; height:200px; border:1px solid red;"  id = "a" >
     < div  style = "width:100px; height:100px; border:1px solid skyblue; margin:50px auto; display:none;"  id = "b" ></ div >
</ div >

jq

1
2
3
4
5
6
7
8
9
$(document).ready( function (){
     
         $( "#a" ).hover( function (){
             $( "#b" ).show();
         }, function (){
             $( "#b" ).hide();
         });
         
     });

②:B只有一部分在A区域里。如:

html

1
2
< div  style = "width:200px; height:200px; border:1px solid red;"  id = "c" ></ div >
< div  style = "width:100px; height:100px; border:1px solid skyblue; display:none; margin-top:-10px;"  id = "d" ></ div >

jq

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$(document).ready( function (){
         $( "#c" ).hover( function (){
             $( "#d" ).show();
         }, function (){
             $( "#d" ).hide();
         });
         
         $( "#d" ).hover( function (){
             $( "#d" ).show();
         }, function (){
             $( "#d" ).hide();
         });
         
         
     });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值