mouseover 和 mouseenter

mouseover 经过自身盒子触发,经过子盒子也触发。

【mouseover会冒泡,鼠标从外部移入子元素或从父元素移入子元素,都会先触发子元素的mouseover再触发父元素的mouseover。】

mouseenter 只经过自身盒子触发,不冒泡。

mouseout 和 mouseleave

mouseout : 离开自身盒子触发自身的mouseout,进入子盒子也触发自身的mouseout。

【 mouseout冒泡,从子元素进入父元素时,即触发子元素的mouseout,也会触发父元素的mouseout。】

mouseleave:仅在自身盒子时被触发,不冒泡。

示例1

结论:对于同一个元素,鼠标移入后,会先触发mouseover,再触发mouseenter。

    <style>#parent {width: 200px;height: 200px;background-color: bisque;}</style><div id="parent"></div><script>var parent = document.getElementById("parent");parent.addEventListener("mouseenter", function (e) {console.log("===mouseenter parent===");});parent.addEventListener("mouseover", function (e) {console.log("===mouseover parent===");});</script>

示例2

结论:对于重叠的父子元素,mouseover会先触发子盒子再触发父盒子。mouseenter会先进入父盒子再进入子盒子。【字面理解:over:进入盒子上方,enter:“触碰”到盒子】

    <div id="parent"><div id="son"></div></div><script>var parent = document.getElementById("parent");var son = document.getElementById("son");parent.addEventListener("mouseover", function (e) {console.log("===mouseover parent===");});parent.addEventListener("mouseenter", function (e) {console.log("===mouseenter parent===");});son.addEventListener("mouseenter", function (e) {console.log("===mouseenter son===");});son.addEventListener("mouseover", function (e) {console.log("===mouseover son===");});</script>

示例3

结论:对于同一个元素来说,鼠标离开元素,先触发mouseout,再触发mouseleave。

   var parent = document.getElementById("parent");parent.addEventListener("mouseout", function (e) {console.log("===mouseout parent===");});parent.addEventListener("mouseleave", function (e) {console.log("===mouseleave parent===");});

示例4

结论:

    <div id="parent"><div id="son"></div></div><script>var parent = document.getElementById("parent");var son = document.getElementById("son");parent.addEventListener("mouseout", function (e) {console.log("===mouseout parent===");});parent.addEventListener("mouseleave", function (e) {console.log("===mouseleave parent===");});parent.addEventListener("mouseenter", function (e) {console.log("===mouseenter parent===");});parent.addEventListener("mouseover", function (e) {console.log("===mouseover parent===");});son.addEventListener("mouseout", function (e) {console.log("===mouseout son===");});son.addEventListener("mouseleave", function (e) {console.log("===mouseleave son===");});son.addEventListener("mouseenter", function (e) {console.log("===mouseenter son===");});son.addEventListener("mouseover", function (e) {console.log("===mouseover son===");});</script>


上图结论:mouseout会冒泡。从子元素进入父元素时,即触发子元素的mouseout,也会触发父元素的mouseout。然后触发子元素的mouseleave,触发父元素的mouseover。


上图结论:mouseover会冒泡。从父元素移入子元素,触发父的mouseout。触发子元素的mouseover接着冒泡触发父的mouseover。触发子元素的mouseenter,因为确实进入了子元素。

mouseover 和 mouseenter相关推荐

  1. mouseover与mouseenter,mouseout与mouseleave的区别

    mouseover与mouseenter 不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件. 只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件. mouseou ...

  2. jQuery面试题-区别mouseover和mouseenter的不同之处(看了也许对你有好处)

    文章目录 1.简单阐述mouseover和mouseenter的不同之处 2.代码实例测试 3.效果图 1.简单阐述mouseover和mouseenter的不同之处 mouseover:在移入子元素 ...

  3. java mouseenter_关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别

    最近在做的在线考试和课程商城都遇到这样的问题:就是鼠标滑过的时候出现一个层,当鼠标滑到当前层的话mouseover和mouseout在低版本的浏览器会出现闪动的现象,解决这个现象的办法有许多,不过我觉 ...

  4. JavaScript中的mouseover与mouseenter,mouseout和mouseleave的区别

    1.mouseover与mouseenter mouseover事件:不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件. mouseenter事件:只有在鼠标指针穿过被选元素时, ...

  5. mouseover、mouseenter

    mouseover.mouseenter 相信大家刚开始学mouseover和mouseenter的时候,总感觉这两个效果是一样的! 但是仔细一想,既然是一样的,那么为什么要写两个呢? 那么问题就来了 ...

  6. jQuery mouseover与mouseenter,mouseout与mouseleave的区别

    mouseover与mouseenter 不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件. 只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件. mouseou ...

  7. 鼠标事件(mouseover和mouseenter)

    下拉菜单案例 前言 一.mouseover和mouseenter的不同点 1.事件的触发时机 2.是否支持冒泡 二.案例 总结 前言 自己做下拉菜单的时候,突然发现mouseover和mouseent ...

  8. 由mouseover和mouseenter引发的思考

    这是两个都是鼠标移入事件,首先要明确的是**mouseover可以冒泡,而mouoseenter无法冒泡**,这是它们的最根本区别 示例说明 这两者间的区别可以明显体现在父子元素间 示例主要代码: & ...

  9. mouseover和mouseenter的异同

    引言 在自己动手练习一些项目实例的时候,发现mouseover和mouseenter这俩事件功能有点相似,但应用场景却不同. 所以想整篇博客梳理梳理 mouseover和mouseenter的不同点: ...

  10. JS——mouseover和mouseenter的区别

    区别 举例 补充 区别 mouseover:鼠标移入事件所绑定的元素或其子元素时,都会触发该事件.(具有冒泡特性) mouseenter:只有鼠标移入事件所绑定的元素时,才会触发该事件.(不具有冒泡特 ...

最新文章

  1. vue中实现双向数据绑定原理,使用了Object.defineproperty()方法,方法简单
  2. 稳坐视频云行业第一,阿里云将用边缘计算开辟新赛道
  3. Win7 下打开wifi共享的方法
  4. virtualbox怎么共享文件夹 linux,Virtualbox中Ubuntu设置共享文件夹
  5. 该虚拟机似乎正在使用中。 如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权。否则,请按“取消(C)”按钮以防损坏。 配置文件: D:\instractPath\Developmen
  6. slf4j 和 log4j2 架构设计
  7. 编译mcu media server
  8. 使用可道云kodbox在ubuntu云服务器上搭建自己的私有云盘(详细教程)
  9. matlab中ones函数的使用方法详细介绍(附matlab代码)
  10. IceSword 1.12
  11. Graph Neural Network-Based Anomaly Detection in Multivariate Time Series 代码配置及解析
  12. Excel报表的导出
  13. Fuchsia编译与真机安装
  14. CodeForces 757 E.Bash Plays with Functions(积性函数+dp)
  15. 计算机工作表中按升序排列,计算机文化基础上机指导
  16. 通过 JFR 与日志深入探索 JVM - TLAB 原理详解
  17. XTF文件的数据结构解析完成
  18. 一文掌握Flutter for Windows桌面端稳定版新特性
  19. 俏江南“倒闭”真相:对员工好坏,直接决定了企业的生死!
  20. 大数据在地理信息系统的应用

热门文章

  1. 泰坦尼克号的数据集的下载 tensflow
  2. lua 令牌桶 源码_Redis和Lua脚本(实现令牌桶限流)
  3. 鼎捷易助8.0ERP系统制造业ERP系统介绍
  4. [ERP/鼎捷E10][生产管理]指定完工
  5. Android获取半透明属性
  6. QQ安装包可能被非法改动导致安装失败怎么办
  7. logback分环境配置
  8. 用vuejs如何实现ajax,vuejs使用FormData实现ajax上传图片文件
  9. CefSharp 知道这些就完事了
  10. zoom怎么解除静音_Zoom参会者入会后的注意事项