mouseenter 和 mouseleave
做一个下拉菜单的时候,HTML结构如下:
<ul>
<li class="red">
<a href="">第一级</a>
</li>
<li class="red">
<a href="">第一级</a>
</li>
<li class="red">
<a href="">第一级</a>
<div class="white">
<a href="">第二级</a>
</div>
<div class="white">
<a href="">第二级</a>
</div>
</li>
</ul>
如果对 .red a 绑定mouseover事件,而对整个li(包含第一级和第二级菜单)绑定mouseout事件的话,
li的子元素,也就是任何一个div,甚至任何一个a,都会被绑定mouseout,从而没法使得菜单在正确的时候收起(离开整个li的时候)。
用javascript直接判断对逻辑要求比较高,甚至可以说是我的噩梦。
其实jquery有两个方法可以简单快速的解决这个问题,这两个方法还可以连缀使用:
$(".white a").mouseenter(function(){
相当于mouseover的部分
}).mouseleave(function(){
相当于mouseout的部分
});
然后如果还有相应的点击事件,和mouseout一样,需要判断并排除与click事件的冲突,避免无法呈现选中状态。
mouseenter([[data],fn])
概述
当鼠标指针穿过元素时,会发生 mouseenter 事件。该事件大多数时候会与mouseleave 事件一起使用。
与 mouseover 事件不同,只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件。如果鼠标指针穿过任何子元素,同样会触发 mouseover 事件。
参数
fnFunctionV1.0
在每一个匹配元素的mouseenter事件中绑定的处理函数。
[data],fnString,FunctionV1.4.3
data:mouseenter([Data], fn) 可传入data供函数fn处理。
fn:在每一个匹配元素的mouseenter事件中绑定的处理函数。
示例
描述:
当鼠标指针进入(穿过)元素时,改变元素的背景色:
jQuery 代码:
$("p").mouseenter(function(){
$("p").css("background-color","yellow");
});
mouseleave([[data],fn])
概述
当鼠标指针离开元素时,会发生 mouseleave 事件。该事件大多数时候会与mouseenter 事件一起使用。
与 mouseout 事件不同,只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。如果鼠标指针离开任何子元素,同样会触发 mouseout 事件。
参数
fnFunctionV1.0
在每一个匹配元素的mouseleave事件中绑定的处理函数。
[data],fnString,FunctionV1.4.3
data:mouseleave([Data], fn) 可传入data供函数fn处理。
fn:在每一个匹配元素的mouseleave事件中绑定的处理函数。
示例
描述:
当鼠标指针离开元素时,改变元素的背景色::
jQuery 代码:
$("p").mouseleave(function(){
$("p").css("background-color","#E9E9E4");
});
mouseenter 和 mouseleave的更多相关文章
- mouseenter以及mouseleave兼容性
在IE的全系列中都实现了mouseenter和mouseleave事件,但是在早期的w3c浏览器中却没有实现这两个事件.有时候,我们需要使用 mouseenter事件来防止子元素的冒泡,这就涉及到事件 ...
- ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave由于鼠标移动速度过快导致问题解决办法
记录两个项目开发中遇到的问题,一个是ECharts外部调用保存为图片操作,一个是workflow工作流连接曲线onmouseenter和onmouseleave事件由于鼠标移动过快触发问题. 一.外部 ...
- mouseover和mouseout、mouseenter和mouseleave
又一个傻傻分不清楚的东东~ 现实真是一个问题天天有的世界~本以为我对js中的事件还是比较了解的,对于早就接触的mouse事件,更是觉得得心应手了~但是现实却给了我一记重拳! 我自身工作中遇到的犯二的故 ...
- 第二十七课:滚轮事件,mouseenter与mouseleave事件的修复
滚轮事件 jQuery核心库没有对mousewheel事件的差异性进行处理,但作为一个常用的事件,本文讲解一下. mousewheel事件只有火狐浏览器不支持.mousewheel用于取得滚动距离的属 ...
- mouseover,mouseout,mouseenter,mouseleave的区别
相信做前端开发的都听说过“冒泡型事件”吧,<JavaScript高级程序设计>第九章有详细的讲述,但是,在学习的时候一知半解,也没详细去理解,导致最近在工作中碰到了问题:有许多 li 标签 ...
- jquery的鼠标移入移出事件hover、mouseenter、mouseleave、mouseover、mouseout
hover:鼠标进入元素的子元素时不会触发‘鼠标移开’的事件: mouseenter.mouseleave:效果与hover相同: mouseover: 鼠标进入元素和进入它的子元素时都会触发‘mou ...
- Delphi下TLabel鼠标MouseEnter、MouseLeave更改颜色失灵
在Delphi 7下,如果想在鼠标MouseEnter.MouseLeave的时候改变TLabel自身的颜色,很多人可能会采用 Label.Color := clRed;这样的方式来实现,我当初也是一 ...
- Jquery使用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Jquery使用mousee ...
- mouseover,mouseout与mouseenter,mouseleave
针对单个元素,使用感一样. 差异提现在有子元素的情况下: mouseover和mouseout在父元素和其子元素都可以触发,当鼠标穿过一个元素时,触发次数得依子元素数量而言. mouseenter和m ...
- Jquery hover方法使用及 mouseenter与mouseleave和 mouseover与mouseout的区别
定义和用法 hover() 方法规定当鼠标指针悬停在被选元素上时要运行的两个函数. jQuery 1.7 版本前该方法触发 mouseenter 和 mouseleave 事件. jQuery 1.8 ...
随机推荐
- jstree 节点拖拽保存数据库
需要jstree具有拖拽功能需要在加载jstree时添加dnd插件,具体看代码: $('**').jstree({ //plugins-各种jstree的插件引入,展示树的多样性 'plugins' ...
- strstr和memcmp函数的实现
#include <stdio.h> #include <stdlib.h> //malloc()函数 typedef unsigned int size_t; size_t ...
- ReentrantLock与synchronized的差别
总的来说,lock更加灵活. 主要同样点:Lock能完毕synchronized所实现的全部功能 不同: 1.ReentrantLock功能性方面更全面,比方时间锁等候,可中断锁等候,锁投票等,因此更 ...
- jersey + tomcat 实现restful风格
本文参考 http://www.cnblogs.com/bluesfeng/archive/2010/10/28/1863816.html 环境: idea 15.0.2 jersey 1.3 tom ...
- 设置Eclipse中文API提示信息
准备工作:下载中文API到本机:http://download.java.net/jdk/jdk-api-localizations/jdk-api-zh-cn/publish/1.6.0/html_ ...
- 最近的两个小项目,2:Python webapp的docker镜像
时间过得真快,一眨眼一个多月没更新了,但这一个月我可没偷懒啊,真的是忙.粘上两篇ReadMe勉强凑合一下,保持博客更新是好习惯. 基于Flask框架,uwsgi起服务,supervisor做管理,应该 ...
- easyui总结
1.设置一个区域可拖动的第一种方法直接用html<div id="dd" style="width:100px;height:100px;">< ...
- LINUX启动顺序
Linux 启动顺序: 1. BIOS自检 (服务器硬件启动的第一步,坑定的啦) 2. 运行系统内核并检测硬件(这个是看系统了,redhat等相关版本是通过/boot/vm进行启动 vmlinuz) ...
- RMQ 与 LCA-ST算法
RMQ算法 区间求最值的算法,用区间动态规划(nlogn)预处理,查询O(1) http://blog.csdn.net/y990041769/article/details/38405063 (PO ...
- python----------进程、线程、协程
进程与线程 什么是进程(process)? An executing instance of a program is called a process. Each process provides ...