事件的传播机制
let box = document.querySelector('.box'),
outer = document.querySelector('.outer'),
inter = document.querySelector('.inner');
box.onclick = function(){
console.log('box');
}
outer.onclick = function(){
console.log('outer');
}
inter.onclick = function(ev){
ev.stopPropagation();
console.log('inter');
}
document.body.onclick = function(ev) {
if(ev.target.className === 'box'){
console.log('box');
return;
}
if(ev.target.className === 'outer'){
console.log('outer');
return;
}
if(ev.target.className === 'inner'){
console.log('inner');
return;
}
}
<style>
.box {
margin: 0 auto;
padding-top: 60px;
width: 400px;
height: 300px;
background: lightblue;
}
.outer {
margin: 0 auto;
padding-top: 50px;
width: 200px;
height: 200px;
background: lightcoral;
}
.inner {
margin: 0 auto;
width: 100px;
height: 100px;
background: lightsalmon;
}
</style>
<body>
<div class="box">
<div class="outer">
<div class="inner"></div>
</div>
</div>
</body>
mouseover和mouseenter区别
let box = document.querySelector('.box'),
outer = document.querySelector('.outer');
box.onmouseover = function(){
console.log('box mouseover')
}
box.onmouseout = function(){
console.log('box mouseout')
}
box.onmouseenter = function(){
console.log('box mouseenter')
}
box.onmouseleave = function(){
console.log('box mouseleave')
}