老师,onmouseenter不冒泡是什么意思

老师,onmouseenter不冒泡是什么意思

使用onmouseenter时不会结果事件流的冒泡和捕获阶段吗?


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,还是有差别的,onmouseover事件加上e.stopPropagation()之后,在鼠标移入时和onmouseenter事件是一样的,但是在鼠标移出子元素时,还会触发父元素的移出事件,同学可以按照下方箭头的方向操作一下

http://img1.sycdn.imooc.com//climg/60cedbd109d17f6b06370473.jpg

同学知道这些事件的区别即可,祝学习愉快~

好帮手慕言 2021-06-20 10:45:28

同学你好,不冒泡可以简单理解为:触发子元素的事件时,父元素的同名事件不会被触发,如下:
http://img1.sycdn.imooc.com//climg/60ceaadf09b1d7f405950652.jpg

当鼠标移入父元素时,打印”parent 的事件被触发了“,移入子元素时,打印”child 的事件被触发了“

http://img1.sycdn.imooc.com//climg/60ceaaee09f3e31906420542.jpg

如果换成onmouseover事件(此事件是会冒泡的),当鼠标移入父元素时,打印”parent 的事件被触发了“,移入子元素时,先打印”child 的事件被触发了“,再打印”parent 的事件被触发了“

同学可以自己测试下代码:

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.parent {
width: 200px;
height: 200px;
border: 1px solid #000;
}

.child {
width: 100px;
height: 100px;
background-color: #f00;
}
</style>
</head>

<body>
<div class="parent">
<div class="child">child</div>
</div>
<script>
var parentEle = document.querySelector(".parent")
var childEle = document.querySelector(".child")
// parentEle.onmouseenter = function () {
// console.log("parent 的事件被触发了")
// }
// childEle.onmouseenter = function () {
// console.log("child 的事件被触发了")
// }
parentEle.onmouseover = function () {
console.log("parent 的事件被触发了")
}
childEle.onmouseover = function () {
console.log("child 的事件被触发了")
}
</script>
</body>

</html>

​祝学习愉快~

  • 提问者 __Promise #1

    老师,是不是使用onmouseenter时相当于在子元素事件中加上了e.stoppropagation()方法组织了事件传播呢?天生不冒泡和阻止事件传播是一样的机理吗?

    2021-06-20 11:47:39
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师