老师,有个问题
来源:4-22 事件委托(2)
__Promise
2021-06-05 20:11:21
<!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
同学你好,捕获阶段也是可以的。只不过是在捕获阶段获取了oList元素,移入的时候触发事件。
其他发开场景也可以,最主要的是想不想在冒泡阶段执行,是否还有冒泡事件执行,如果在捕获阶段是否有影响。若没有影响,哪个阶段执行都可以。
祝学习愉快!
相似问题