前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jquery 绑定事件 - mouseover() mouseout() mouseenter() mouseleave() hover()

jquery 绑定事件 - mouseover() mouseout() mouseenter() mouseleave() hover()

作者头像
Devops海洋的渔夫
发布2019-05-31 16:26:24
2.8K0
发布2019-05-31 16:26:24
举报
文章被收录于专栏:Devops专栏Devops专栏

事件函数列表

代码语言:javascript
复制
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()事件。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.04.27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 事件函数列表
  • mouseover() 鼠标进入(进入子元素也触发)
  • mouseout() 鼠标离开(离开子元素也触发)
  • mouseenter() 鼠标进入(进入子元素不触发)
  • mouseleave() 鼠标离开(离开子元素不触发)
  • hover() 同时为mouseenter和mouseleave事件指定处理函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档