事件冒泡
<div id="box">
<p id="pp">
<button id="btn" onclick="clickMe()">点击</button>
</p>
</div>
<script>
var box = document.querySelector('#box')
var pp = document.querySelector('#pp')
var btn = document.querySelector('#btn')
box.addEventListener('click',function(){ console.log(`div监听了事件`)},false)
pp.addEventListener('click',function(){ console.log(`pp监听了事件`)},false)
btn.addEventListener('click',function(){ console.log(`btn监听了事件`)},false)
</script>
事件捕捉
<style>
li {
border: 1px solid;
margin-top: 10px;
cursor: pointer;
width: 100px;
}
.on {
color: red;
}
</style>
</head>
<body>
<ul id="app" onclick="clickLi();">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
<script>
function clickLi() {
// console.log(event.target);
var target = event.target;
console.log(target);
if (target.nodeName !== 'LI') return false;
// 其他的li清除颜色
var $li = document.querySelector('.on');
if ($li) {
$li.className = ''
}
// 被点击的li改变颜色
target.className = 'on';
}