遇上一个问题,自己无法理解,求大神科普下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
.test {
height:300px;
cursor: pointer;
}
</style>
</head>
<body>
<p id="test1" class="test">
点我吧
</p>
<p id="test2" class="test">
点我吧
</p>
<script type="text/javascript" src="./index.js"></script>
</body>
</html>
var _tap = 'click';
//先绑定冒泡再绑定捕获
var dom1 = document.getElementById('test1');
dom1.addEventListener(_tap, function (e) {
console.log('d1冒泡');
},false);
dom1.addEventListener(_tap, function (e) {
console.log('d1捕获');
},true);
//先绑定捕获再绑定冒泡
var dom2 = document.getElementById('test2');
dom2.addEventListener(_tap, function (e) {
console.log('d2捕获');
},true);
dom2.addEventListener(_tap, function (e) {
console.log('d2冒泡');
},false);
依次执行结果
各节点绑定的事件顺序

疑问:
1、js事件机制不是先捕获再冒泡嘛。
2、查看开发者面板事件绑定的顺序,不管我是先绑定哪个。最后都是冒泡排第一位。
这里面有什么讲究么
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
因为你是对同一个元素绑定一个事件的两个处理函数,当然是按照先后顺序执行,这里并不存在捕获和冒泡的问题
1.w3c的事件流是 先捕获再冒泡,
2.addEventListener第三个参数如果是useCapture,如果值为true 就阻止冒泡但是会触发捕获, 如果是false 就阻止捕获,但是不阻止冒泡.
3.想要测试事件流 需要父元素和子元素结合 比如
总结 事件的冒泡与否 都不会阻止事件整个流程,但是会决定他本身绑定的事件在哪个阶段触发而已