美文网首页
jquery 绑定事件 - mouseover() mouseo

jquery 绑定事件 - mouseover() mouseo

作者: Devops海洋的渔夫 | 来源:发表于2019-04-27 02:03 被阅读0次

事件函数列表

blur() 元素失去焦点
focus() 元素获得焦点
click() 鼠标单击
mouseover() 鼠标进入(进入子元素也触发)
mouseout() 鼠标离开(离开子元素也触发)
mouseenter() 鼠标进入(进入子元素不触发)
mouseleave() 鼠标离开(离开子元素不触发)
hover() 同时为mouseenter和mouseleave事件指定处理函数
ready() DOM加载完成
resize() 浏览器窗口的大小发生改变
scroll() 滚动条的位置发生变化
submit() 用户递交表单

mouseover() 鼠标进入(进入子元素也触发)

简单来说,可以看到括号写了进入子元素也触发,这是什么意思呢?

写一个简单的两个嵌套div来演示一下看看,如下:

进入子元素也会触发mouseover()事件,那么如果#smalldiv没有嵌套在里面是否会触发呢?
这样应该就不会。

这样就像是类似事件冒泡,不过是子元素将mouseover()传递冒泡给父元素,就算子元素没在#big里面,也会触发这个事件。

mouseout() 鼠标离开(离开子元素也触发)

上面看了mouseover() 是鼠标进入的事件,那么下面来看看这个事件离开的事件。

果然,这个子元素也是会触发mouseout()事件的。

mouseenter() 鼠标进入(进入子元素不触发)

上面两个事件都是具备事件冒泡的特性,看看这个有没有,如下:

测试发现,mouseenter()这个事件,移动到子元素#small div也是会被触发的。
那么如果重叠起来,子元素进入会不会触发呢?

当子元素在父元素内部的时候,mouseenter()就只会触发一次而已。也就是刚刚进入父元素#big div的时候触发,再进入#small div的时候就不会触发了。

mouseleave() 鼠标离开(离开子元素不触发)

相信这个mouseleave()也是一样的特性,跟mouseenter()差不多才对,下面来看看。

当两个元素嵌套在一起的时候,只有父元素触发了事件。
下面来看看不在一起的时候。

可以看到,#small div会将事件冒泡给#big div,导致触发mouseleave()事件。如果想要阻止呢?

可以写一个#small div执行return false;拦截事件冒泡,如下:

hover() 同时为mouseenter和mouseleave事件指定处理函数

这个hover()方法其实就是mouseenter()mouseleave()的合并方法,如下:

当鼠标进入和移出的时候,都会触发hover()事件。

相关文章

网友评论

      本文标题:jquery 绑定事件 - mouseover() mouseo

      本文链接:https://www.haomeiwen.com/subject/qggtnqtx.html