MDN中说mouseenter鼠标事件不采用冒泡而是向每个层级的元素发送事件,但是如果层级太深的话会有性能问题。
我不明白为什么要这样做,而不使用冒泡,网上搜了下也没搜到什么有用的信息。
编辑
又看了下文档,并在浏览器里试了下,发现mouseenter是触发每个元素自身的mouseenter事件。
例如元素1嵌套了元素2,如果鼠标从外部直接进入元素2,那么分别会触发元素1和元素2自身的mouseenter事件,并且不冒泡。而mouseover只会在元素2上触发,然后冒泡,也就是说只有一个事件。
细想了下似乎多次触发和冒泡可以放到同一类型事件里去,可能是考虑到性能问题、低耦合以及事件的简洁性所以分成了mouseenter和mouseover吧。
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…