老师,有个问题

老师,有个问题

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

<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
#box1 {
width: 300px;
height: 300px;
padding: 100px;
border: 1px solid #000;
}

#box2 {
width: 300px;
height: 300px;
border: 1px solid #000;
}
</style>
</head>

<body>
<ul id="list">
<li>123456</li>
<li>123456</li>
<li>123456</li>
<li>123456</li>
<li>123456</li>
</ul>
<input type="text" id="input">
<script>
var oList = document.getElementById('list');

// oList.onmouseover = function (e) {
// e.target.style.color = 'red'
// }

oList.addEventListener('mouseover', function (e) {
e.target.style.color = 'red'
}, true)
</script>
</body>

</html>

问题描述:

为什么用捕获也能实现效果?

如果是其他的开发场景也可以吗?

正在回答

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

2回答

同学你好,问题解答如下:

1、是的,用捕获也能实现。在事件冒泡或者事件捕获阶段处理并没有优劣之分,但是由于事件冒泡的事件流模型被所有主流浏览器兼容,从兼容性角度来说还是建议使用事件冒泡模型 。

2、是可以的,考虑先后触发的问题。

祝学习愉快!

好帮手慕星星 2021-06-06 10:07:21

同学你好,捕获阶段也是可以的。只不过是在捕获阶段获取了oList元素,移入的时候触发事件。

其他发开场景也可以,最主要的是想不想在冒泡阶段执行,是否还有冒泡事件执行,如果在捕获阶段是否有影响。若没有影响,哪个阶段执行都可以。

祝学习愉快!

  • 提问者 __Promise #1

    我看网上好多资料都说委托是利用的冒泡的原理,但是其实利用捕获也可以实现的对吧?

    我的理解是,如果存在很多同名事件的时候,才会考虑用冒泡还是捕获合理对吗?

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

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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