问答

mouseenter为什么不用事件冒泡?

作者:admin 2021-05-07 我要评论

MDN 中说mouseenter鼠标事件不采用冒泡而是向每个层级的元素发送事件,但是如果层级太深的话会有性能问题。 我不明白为什么要这样做,而不使用冒泡,网上搜了下...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

MDN中说mouseenter鼠标事件不采用冒泡而是向每个层级的元素发送事件,但是如果层级太深的话会有性能问题。

我不明白为什么要这样做,而不使用冒泡,网上搜了下也没搜到什么有用的信息。

编辑

又看了下文档,并在浏览器里试了下,发现mouseenter是触发每个元素自身的mouseenter事件。

例如元素1嵌套了元素2,如果鼠标从外部直接进入元素2,那么分别会触发元素1和元素2自身的mouseenter事件,并且不冒泡。而mouseover只会在元素2上触发,然后冒泡,也就是说只有一个事件。

细想了下似乎多次触发和冒泡可以放到同一类型事件里去,可能是考虑到性能问题、低耦合以及事件的简洁性所以分成了mouseenter和mouseover吧。

###

使用冒泡的事件也有啊, mouseover 啊。

mourseenter 跟它的区别就在于此啊。

正因为有了这个区别,所以 mouseenter 在大小嵌套的元素里鼠标穿过时才不会被反复触发啊。

###

可以再了解下事件触发捕获和冒泡,会更加清晰一点。
https://zh.javascript.info/bu...

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • mouseenter为什么不用事件冒泡?

    mouseenter为什么不用事件冒泡?

  • 如何固定一个按钮到底部

    如何固定一个按钮到底部

  • python 中插入数据库

    python 中插入数据库

  • el-cascader相关问题

    el-cascader相关问题

腾讯云代理商
海外云服务器