遇上一个问题,自己无法理解,求大神科普下
<!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>
<div id="test1" class="test">
点我吧
</div>
<div id="test2" class="test">
点我吧
</div>
<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、查看开发者面板事件绑定的顺序,不管我是先绑定哪个。最后都是冒泡排第一位。
这里面有什么讲究么
因为你是对同一个元素绑定一个事件的两个处理函数,当然是按照先后顺序执行,这里并不存在捕获和冒泡的问题