mouseover 和 mouseenter
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相关推荐
- mouseover与mouseenter,mouseout与mouseleave的区别
mouseover与mouseenter 不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件. 只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件. mouseou ...
- jQuery面试题-区别mouseover和mouseenter的不同之处(看了也许对你有好处)
文章目录 1.简单阐述mouseover和mouseenter的不同之处 2.代码实例测试 3.效果图 1.简单阐述mouseover和mouseenter的不同之处 mouseover:在移入子元素 ...
- java mouseenter_关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
最近在做的在线考试和课程商城都遇到这样的问题:就是鼠标滑过的时候出现一个层,当鼠标滑到当前层的话mouseover和mouseout在低版本的浏览器会出现闪动的现象,解决这个现象的办法有许多,不过我觉 ...
- JavaScript中的mouseover与mouseenter,mouseout和mouseleave的区别
1.mouseover与mouseenter mouseover事件:不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件. mouseenter事件:只有在鼠标指针穿过被选元素时, ...
- mouseover、mouseenter
mouseover.mouseenter 相信大家刚开始学mouseover和mouseenter的时候,总感觉这两个效果是一样的! 但是仔细一想,既然是一样的,那么为什么要写两个呢? 那么问题就来了 ...
- jQuery mouseover与mouseenter,mouseout与mouseleave的区别
mouseover与mouseenter 不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件. 只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件. mouseou ...
- 鼠标事件(mouseover和mouseenter)
下拉菜单案例 前言 一.mouseover和mouseenter的不同点 1.事件的触发时机 2.是否支持冒泡 二.案例 总结 前言 自己做下拉菜单的时候,突然发现mouseover和mouseent ...
- 由mouseover和mouseenter引发的思考
这是两个都是鼠标移入事件,首先要明确的是**mouseover可以冒泡,而mouoseenter无法冒泡**,这是它们的最根本区别 示例说明 这两者间的区别可以明显体现在父子元素间 示例主要代码: & ...
- mouseover和mouseenter的异同
引言 在自己动手练习一些项目实例的时候,发现mouseover和mouseenter这俩事件功能有点相似,但应用场景却不同. 所以想整篇博客梳理梳理 mouseover和mouseenter的不同点: ...
- JS——mouseover和mouseenter的区别
区别 举例 补充 区别 mouseover:鼠标移入事件所绑定的元素或其子元素时,都会触发该事件.(具有冒泡特性) mouseenter:只有鼠标移入事件所绑定的元素时,才会触发该事件.(不具有冒泡特 ...
最新文章
- vue中实现双向数据绑定原理,使用了Object.defineproperty()方法,方法简单
- 稳坐视频云行业第一,阿里云将用边缘计算开辟新赛道
- Win7 下打开wifi共享的方法
- virtualbox怎么共享文件夹 linux,Virtualbox中Ubuntu设置共享文件夹
- 该虚拟机似乎正在使用中。 如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权。否则,请按“取消(C)”按钮以防损坏。 配置文件: D:\instractPath\Developmen
- slf4j 和 log4j2 架构设计
- 编译mcu media server
- 使用可道云kodbox在ubuntu云服务器上搭建自己的私有云盘(详细教程)
- matlab中ones函数的使用方法详细介绍(附matlab代码)
- IceSword 1.12
- Graph Neural Network-Based Anomaly Detection in Multivariate Time Series 代码配置及解析
- Excel报表的导出
- Fuchsia编译与真机安装
- CodeForces 757 E.Bash Plays with Functions(积性函数+dp)
- 计算机工作表中按升序排列,计算机文化基础上机指导
- 通过 JFR 与日志深入探索 JVM - TLAB 原理详解
- XTF文件的数据结构解析完成
- 一文掌握Flutter for Windows桌面端稳定版新特性
- 俏江南“倒闭”真相:对员工好坏,直接决定了企业的生死!
- 大数据在地理信息系统的应用
热门文章
- 泰坦尼克号的数据集的下载 tensflow
- lua 令牌桶 源码_Redis和Lua脚本(实现令牌桶限流)
- 鼎捷易助8.0ERP系统制造业ERP系统介绍
- [ERP/鼎捷E10][生产管理]指定完工
- Android获取半透明属性
- QQ安装包可能被非法改动导致安装失败怎么办
- logback分环境配置
- 用vuejs如何实现ajax,vuejs使用FormData实现ajax上传图片文件
- CefSharp 知道这些就完事了
- zoom怎么解除静音_Zoom参会者入会后的注意事项