jquery 绑定事件 - mouseover() mouseo
2019-04-27 本文已影响0人
Devops海洋的渔夫
事件函数列表
blur() 元素失去焦点
focus() 元素获得焦点
click() 鼠标单击
mouseover() 鼠标进入(进入子元素也触发)
mouseout() 鼠标离开(离开子元素也触发)
mouseenter() 鼠标进入(进入子元素不触发)
mouseleave() 鼠标离开(离开子元素不触发)
hover() 同时为mouseenter和mouseleave事件指定处理函数
ready() DOM加载完成
resize() 浏览器窗口的大小发生改变
scroll() 滚动条的位置发生变化
submit() 用户递交表单
mouseover() 鼠标进入(进入子元素也触发)
简单来说,可以看到括号写了进入子元素也触发,这是什么意思呢?
写一个简单的两个嵌套div来演示一下看看,如下:
![](https://img.haomeiwen.com/i13423234/83a493ac2b24651c.png)
![](https://img.haomeiwen.com/i13423234/f6361def434f663c.png)
进入子元素也会触发mouseover()
事件,那么如果#small
的div
没有嵌套在里面是否会触发呢?
这样应该就不会。
![](https://img.haomeiwen.com/i13423234/53b260cfab886df8.png)
这样就像是类似事件冒泡,不过是子元素将mouseover()
传递冒泡给父元素,就算子元素没在#big
里面,也会触发这个事件。
mouseout() 鼠标离开(离开子元素也触发)
上面看了mouseover()
是鼠标进入的事件,那么下面来看看这个事件离开的事件。
![](https://img.haomeiwen.com/i13423234/aed6d3113d520a08.png)
![](https://img.haomeiwen.com/i13423234/2fc2fad091ff564f.png)
果然,这个子元素也是会触发mouseout()
事件的。
mouseenter() 鼠标进入(进入子元素不触发)
上面两个事件都是具备事件冒泡的特性,看看这个有没有,如下:
![](https://img.haomeiwen.com/i13423234/b125eec404595d72.png)
![](https://img.haomeiwen.com/i13423234/53de9e03db4aa422.png)
测试发现,mouseenter()
这个事件,移动到子元素#small div
也是会被触发的。
那么如果重叠起来,子元素进入会不会触发呢?
![](https://img.haomeiwen.com/i13423234/9b5d2d9c94543b3e.png)
当子元素在父元素内部的时候,mouseenter()
就只会触发一次而已。也就是刚刚进入父元素#big div
的时候触发,再进入#small div
的时候就不会触发了。
mouseleave() 鼠标离开(离开子元素不触发)
相信这个mouseleave()
也是一样的特性,跟mouseenter()
差不多才对,下面来看看。
![](https://img.haomeiwen.com/i13423234/49b812ea96fc3ce1.png)
![](https://img.haomeiwen.com/i13423234/a0de491a94e4b685.png)
当两个元素嵌套在一起的时候,只有父元素触发了事件。
下面来看看不在一起的时候。
![](https://img.haomeiwen.com/i13423234/072160d4cbc6e633.png)
![](https://img.haomeiwen.com/i13423234/e78a2566b4ccd692.png)
可以看到,#small div
会将事件冒泡给#big div
,导致触发mouseleave()
事件。如果想要阻止呢?
可以写一个#small div
执行return false;
拦截事件冒泡,如下:
![](https://img.haomeiwen.com/i13423234/996fca8be6f28cb9.png)
hover() 同时为mouseenter和mouseleave事件指定处理函数
这个hover()
方法其实就是mouseenter()
和mouseleave()
的合并方法,如下:
![](https://img.haomeiwen.com/i13423234/9394563cd90e97ad.png)
![](https://img.haomeiwen.com/i13423234/14eff73f4e07ca13.png)
当鼠标进入和移出的时候,都会触发hover()
事件。
![](https://img.haomeiwen.com/i13423234/0e3934319aa622f6.png)