这是两个事件类型,都是表示鼠标经过触发事件。
还有对应的mouseleave和mouseout,表示鼠标移开触发事件
区别是:mouseenter、mouseleave 不触发冒泡事件
mouseover、mouseout 会触发冒泡事件
首先事件触发后会产生两个阶段,一个是捕获阶段,一个是冒泡阶段,捕获阶段也被成为反冒泡
冒泡,就是像鱼吐气泡一样,从水底一层层向上升起。
同理冒泡事件就是一级一级向上执行,比如孩子执行了事件,那么父亲也会执行父亲对应的事件,爷爷会执行爷爷对应的事件....
mouseover 冒泡
为了观测到子事件触发后,是否父亲也会执行?我们需要给父亲设置监听事件
<script>// 获取元素const div = document.querySelector('div')const p = document.querySelector('p')// 事件监听div.addEventListener('mouseover',function(){console.log('父亲触发了')})p.addEventListener('mouseover',function(){console.log('孩子触发了')})</script>
父与子盒子
mouseover 控制台显示
刚进入盒子时,触发父亲的监听事件
进入子盒子,不仅触发了子的监听事件,接着冒泡执行了父亲的监听事件
离开子盒子时,又触发了父亲的监听事件
mouseenter 不冒泡
<script>// 获取元素const div = document.querySelector('div')const p = document.querySelector('p')// 事件监听div.addEventListener('mouseenter',function(){console.log('父亲触发了')})p.addEventListener('mouseenter',function(){console.log('孩子触发了')})</script>
mouseenter 控制台显示
刚进入盒子时,触发父亲的监听事件
进入子盒子,只触发了子的监听事件,没有触发父亲的监听事件
离开子盒子时,没有触发了父亲的监听事件
okk,实践做好,才能更不容易忘记 ヽ( ̄▽ ̄)و


















