mouseleave事件是各元素各自触发,不是由子元素冒泡而来,而mouseout是由子元素冒泡而来。
.app1 { width: 300px; height: 300px; border: 1px dashed black; } .app2 { width: 200px; height: 200px; border: 1px dashed gray; } .app3 { width: 100px; height: 100px; border: 1px dashed lightgray; } /* 我把鼠标起点放在最里层 div 里往外移动到最外层 div 之外 */ //上述一整个过程 onm ouseleave 只会会打印一次 //而 onm ouseout 会打印三次,三层 div 由于子元素冒泡,导致打印事件发生了3次 <div class="app1" onm ouseleave="console.log('leave')"> <div class="app2"> <div class="app3"></div> </div> </div>