js中鼠标事件mouseover、mouseenter和mouseleave、mouseout的区别

article/2025/11/10 5:11:58

mouseover:当鼠标移入元素或其子元素都会触发事件,所以有一个重复触发,冒泡过程。对应的移除事件是mouseout

mouseenter:当鼠标移除元素本身(不包含元素的子元素)会触发事件,也就是不会冒泡,对应的移除事件是mouseleave

异同体现在两个方面:

1. 是否支持冒泡

2.事件的触发时机

 mouseenter事件的情况

 当鼠标从元素的边界之外移入元素的边界之内时,事件被触发。而鼠标本身在元素边界内时,要触发该事件,必须先将鼠标移出元素边界外,再次移入才能触发。

也就是说:mouseover支持事件冒泡,而mouseenter不支持事件冒泡

由于mouseenter不支持事件冒泡,导致在一个元素的子元素上进入或离开的时候会触发其mouseover和mouseout事件,但不会触发mouseenter和mouseleave事件。

如何模拟mouseenter事件

可见mouseover事件因其具有冒泡的性质,在子元素内移动的时候,频繁被触发,如果我们不希望如此,可以使用mouseenter事件代替之,但是早期只有ie浏览器支持该事件,虽然现在大多数高级浏览器都支持了mouseenter事件,但是难免会有些兼容问题,所以如果可以自己手动模拟,那就太好了。

mouseenter:当鼠标移入某元素时触发。

mouseleave:当鼠标移出某元素时触发。

mouseover:当鼠标移入某元素时触发,移入和移出其子元素时也会触发。

mouseout:当鼠标移出某元素时触发,移入和移出其子元素时也会触发。

mousemove:鼠标在某元素上移动时触发,即使在其子元素上也会触发。

mouseout、mouseover和mouseleave、mouseenter最大的区别,在于子元素连带触发。

<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><title></title><style>.a{width: 500px;height: 500px;background: aliceblue;}.b{width: 200px;height: 200px;background: beige;}.c{width: 100px;height: 100px;background: violet;}</style>
</head>
<body><div class="a">A<div class="b"onmouseenter="mouseenter()"onmouseleave="mouseleave()"onmouseout="mouseout()"onmouseover="mouseover()"onmousemove="mousemove()">B<div class="c">C</div></div></div><script>function mouseenter(){console.log('mouseenter')}function mouseleave(){console.log('mouseleave')}function mouseout(){console.log('mouseout')}function mouseover(){console.log('mouseover')}function mousemove(){console.log('mousemove')}</script>
</body>
</html>

从A元素到C元素,再从C回到A,控制台输出如下

 

 


http://chatgpt.dhexx.cn/article/QvTyh1Jg.shtml

相关文章

mouseover和mouseenter的异同

引言 在自己动手练习一些项目实例的时候&#xff0c;发现mouseover和mouseenter这俩事件功能有点相似&#xff0c;但应用场景却不同。 所以想整篇博客梳理梳理 mouseover和mouseenter的不同点&#xff1a; 不同点有两方面&#xff1a; 事件的触发时机是否支持冒泡 一、事件…

JS——mouseover和mouseenter的区别

区别举例补充 区别 mouseover:鼠标移入事件所绑定的元素或其子元素时&#xff0c;都会触发该事件。&#xff08;具有冒泡特性&#xff09; mouseenter:只有鼠标移入事件所绑定的元素时&#xff0c;才会触发该事件。&#xff08;不具有冒泡特性&#xff09; 举例 mouseover&a…

mouseenter和mouseover的区别

mouseover&#xff1a;当鼠标移入目标元素或者移入目标元素的子元素&#xff0c;都会触发该事件。所以有一个重复触发&#xff0c;冒泡的过程。对应的一出事件mouseout。 mouseenter&#xff1a;当鼠标移入目标元素时&#xff08;不包括子元素&#xff09;&#xff0c;会触发该…

jQuery学习:mouseenter与mouseover区别

mouseenter:只有移入当前元素才会触发&#xff0c;对应mouseleave hover使用的是mouseenter与mouseleave mouseover&#xff1a;在移入子元素时也会触发&#xff0c;对应mouseout <div id"div1">div1<div id"div2">div2</div></div&…

mouseentermouseleave

mouseenter&mouseleave 简介 mouseenter当指针设备&#xff08;通常是鼠标&#xff09;移动到连接了侦听器的元素上时&#xff0c;会触发该事件。 mouseover 当指针设备&#xff08;通常是鼠标&#xff09;移动到附加了侦听器的元素或其子项之一上时&#xff0c;会触发该事…

mouseenter

这几天做下拉菜单&#xff0c;一直想实现鼠标停留在以及菜单即可显示二级菜单并可以浏览二级菜单的功能&#xff0c;最初走了很多弯路。 dropdown 写在是用Bootstrap.js …

mouseenter与mouseover的区别

这是两个事件类型&#xff0c;都是表示鼠标经过触发事件。 还有对应的mouseleave和mouseout&#xff0c;表示鼠标移开触发事件 区别是&#xff1a;mouseenter、mouseleave 不触发冒泡事件 mouseover、mouseout 会触发冒泡事件 首先事件触发后会产生两个阶段&#xff0c;一个是…

简单了解mouseover与mouseenter的使用场景

我们知道鼠标经过和离开的事件有俩种&#xff1a; mouseenter与mouseover&#xff0c;那么这里俩个事件有什么区别呢&#xff1f; mouseenter&#xff1a;给谁注册的事件&#xff0c;就必须经过谁&#xff0c;才能触发该事件 简单来说mouseenter不能冒泡&#xff0c;也就是说经…

mouseenter鼠标事件

mouseenter鼠标事件 1.当鼠标移动到元素上时就会触发mouseenter事件 2.类似mouseover&#xff0c;它们两者之间的差别是 mouseover鼠标经过自身盒子会触发&#xff0c;经过子盒子还会触发。mouseenter只会经过自身盒子触发 这样的原因就是 mouseenter不会冒泡。 <!DOCTYP…

mouseenter和mouseleave与mouseover和mouseout的区别

一、mouseenter&#xff08;指针穿过&#xff0c;子集不执行&#xff09; 当鼠标指针穿过&#xff08;进入&#xff09;被选元素时&#xff0c;会发生 mouseenter 事件。 mouseenter() 方法触发 mouseenter 事件&#xff0c;或添加当发生 mouseenter 事件时运行的函数。 注意…

mouseenter、mouseleave、mouseover和mouseout的区别

mouseenter(进入)、mouseleave、mouseover(覆盖)和mouseout是常用来判断鼠标移出和移入的事件句柄&#xff0c;虽然功能上差不多&#xff0c;但是细节却有不同的地方。 <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>随…

mouseover事件和mouseenter事件以及mouseleave事件和mouseout事件的区别

1.mouseover事件与mouseenter事件 mouseover事件&#xff1a;不论鼠标指针穿过被选元素或其子元素&#xff0c;都会触发 mouseover 事件。 mouseenter事件&#xff1a;只有在鼠标指针穿过被选元素时&#xff0c;才会触发 mouseenter 事件。 2.mouseout事件与mouseleave事件 …

Git - 教程(廖雪峰)

史上最浅显易懂的Git教程&#xff01; 为什么要编写这个教程&#xff1f;因为我在学习Git的过程中&#xff0c;买过书&#xff0c;也在网上Google了一堆Git相关的文章和教程&#xff0c;但令人失望的是&#xff0c;这些教程不是难得令人发指&#xff0c;就是简单得一笔带过&am…

廖雪峰git学习(3)分支管理【待续】

创建与合并分支 创建分支 git checkout -b dev #创建并切换到分支dev相当于以下两条 git branch dev #创建分支dev git checkout dev #切换到分支dev git branch #可查看当分支 合并分支 git merge dev #将dev分支与master分支合并 删除分支 git branch -d dev#删除dev分支

Git操作——廖雪峰Git教程

这个笔记主要记录的命令&#xff0c;用来翻查命令使用。 学习了一部分&#xff0c;剩下的部分后续更新o(&#xffe3;▽&#xffe3;)ブ 廖雪峰的Git教程 零散的命令&#xff1a; 显示当前目录——pwd显示隐藏目录——ls -ah查看文件 —— cat <文件名> 创建版本库 …

廖雪峰git教程学习记录

1. 下载安装 git官网下载&#xff1a;https://git-scm.com/downloads 百度网盘链接: https://pan.baidu.com/s/1quoLbBcbWaGJ05do4DX9Pw 提取码: xqe3 直接下载安装&#xff0c;完成后在开始菜单找“Git”--“Git Bash” 点击打开&#xff0c;如下图形式显示 安装成功。 2. …

Python 爬虫:把廖雪峰的教程转换成 PDF 电子书

。前两天&#xff0c;有读者在微信公众平台 问道&#xff1a;可以推荐一本 Python 入门的教程吗&#xff1f;我说&#xff1a;廖雪峰的 Python 教程她说&#xff1a;有没有电子书呢&#xff1f;我说&#xff1a;没有&#xff0c;但你可以用 Google 搜一下&#xff0c;找到了记得…

git常用命令总结--廖雪峰老师Git教程命令总结

学习了廖雪峰老师的Git教程之后的命令总结&#xff0c;重点更新第十项关于git和远程仓库的东西。 如果没有学过&#xff0c;这是传送门 2021.02.19更新&#xff1a;第十章第12节--切换远程分支并拉取远程分支到本地&#xff0c;第十章第13节--git不用每次都要输入用户名密码 …

学习廖雪峰的Git教程

学习廖雪峰的git教程&#xff1a;http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 1.创建版本库&#xff1a; 在一个空目录下&#xff1a;git init 把这个目录变成Git可以管理的仓库。 2.添加文件到仓库&#xff1a; 添加文件到仓库目…

git学习笔记——廖雪峰git教程

OK&#xff0c;先附上教程——廖雪峰的官方网站 友情连接&#xff1a;git官网 简介 这里我只想引用他的原文&#xff1a; Linus可以向BitMover公司道个歉&#xff0c;保证以后严格管教弟兄们&#xff0c;嗯&#xff0c;这是不可能的。实际情况是这样的&#xff1a; Linus花了…