本文摘自PHP中文网,作者php中世界最好的语言,侵删。
这次给大家带来鼠标移出事件的案例以及详解,使用鼠标移出事件的注意事项有哪些,下面就是实战案例,一起来看一下。一个mouseout事件引发的问题
1. 遇到的问题
最近上课做一个效果,显示一个模拟QQ好友列表,默认是隐藏的,鼠标移动到浏览器右边界的时候显示,离开好友列表框的时候隐藏。
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Insert title here
#friends{
border:1px solid #ff0000;
width:200px;
height:400px;
position:absolute;
right:0px;
top:20px;
background: #abcdef;
display:none
}
#line{
width:1px;
height:800px;
float:right;
}
var inter;
jQuery( function (){
( "#line" ).mouseover( function (){ $( "#friends" ).show(1000); });
( "#friends" ).bind( 'mouseout' , function (event){
$(this).hide(1000);
});
});
|
好友列表
1 2 3 4 | <p style= "height:25px" ><span>会飞的鱼</span><img style= "width:18px;height:18px;" src= "images/boy.png" /></p>
<p style= "height:25px" ><span>会飞的鱼</span><img style= "width:18px;height:18px;" src= "images/boy.png" /></p>
<p style= "height:25px" ><span>会飞的鱼</span><img style= "width:18px;height:18px;" src= "images/boy.png" /></p>
<p style= "height:25px" ><span>会飞的鱼</span><img style= "width:18px;height:18px;" src= "images/boy.png" /></p>
|
运行界面:

上面的mouseout事件出了问题,鼠标移动到右边界显示好友框没问题,当移动到好友昵称上面时候好友框消失了,这是为何?
原因是好友框内有好多子元素p,每个p对应一个好友。此时鼠标移动到子元素上面触发了父元素的mouseout事件。更为糟糕的是子元素p里面还有span,image子元素,这样就会触发子元素p的mouseout,继而冒泡到最外层的好友列表的p。
2. 如何解决
方法一:
思路:判断当前鼠标指向的元素是否是其子元素,如果是子元素就不隐藏,直接return,否则,隐藏好友列表。
阅读剩余部分
相关阅读 >>
jquery实现响应滚动条事件功能方法
h5实现桌面通知以及提示功能的实例
javascript添加事件的三种方式
vue怎样全局配置键盘事件
详细介绍html5中的新事件
浅谈bootstrap3中的下拉菜单事件
svg的案例详解
rem相对单位使用案例分享
html的网页错位原因以及解决方法
jquery的dom与事件
更多相关阅读请进入《以及》频道 >>
人民邮电出版社
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者
转载请注明出处:木庄网络博客 » 鼠标移出事件的案例以及详解