首页
学习
活动
专区
圈层
工具
发布

mouseenter以及mouseleave兼容性

在IE的全系列中都实现了mouseenter和mouseleave事件,但是在早期的w3c浏览器中却没有实现这两个事件。...有时候,我们需要使用 mouseenter事件来防止子元素的冒泡,这就涉及到事件兼容性的问题了。...先比较mouseenter和mouseover的异同点,当从元素外围进入元素内部时同时触发mouseover和mouseenter事件,但是在元素内部, 鼠标进入元素子节点时会继续触发mouseover...事件,该事件是可以向上冒泡的;对于mouseenter则不会冒泡,当然也不会触发该事件。...mouseleave亦然。 用mouseover来模拟mouseenter的关键在于利用事件的relatedTarget判定鼠标是否在元素内部移动,这也涉及到dom元素contain() 的实现。

1.6K70

jquery 绑定事件 - mouseover() mouseout() mouseenter() mouseleave() hover()

() 鼠标进入(进入子元素不触发) mouseleave() 鼠标离开(离开子元素不触发) hover() 同时为mouseenter和mouseleave事件指定处理函数 ready() DOM加载完成...当子元素在父元素内部的时候,mouseenter()就只会触发一次而已。也就是刚刚进入父元素#big div的时候触发,再进入#small div的时候就不会触发了。...mouseleave() 鼠标离开(离开子元素不触发) 相信这个mouseleave()也是一样的特性,跟mouseenter()差不多才对,下面来看看。 ? ?...可以看到,#small div会将事件冒泡给#big div,导致触发mouseleave()事件。如果想要阻止呢?...hover() 同时为mouseenter和mouseleave事件指定处理函数 这个hover()方法其实就是mouseenter()和mouseleave()的合并方法,如下: ? ?

3.7K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ReactPortals传送门

    但是在这之前,我们来重新看一下MouseEnter与MouseLeave以及对应的MouseOver与MouseOut的原生DOM事件。...例如,如果有一个嵌套的DOM结构div id="a">div id="b">div>div>,此时我们在元素a上绑定了MouseEnter事件,当鼠标从该元素内部移动到外部时,MouseLeave...实际上两种事件流都是可以阻断的,只不过MouseEnter/MouseLeave需要在捕获阶段来stopPropagation,一般情况下是不需要这么做的。...我个人还是比较推荐使用MouseEnter/MouseLeave,主要有这么几点理由: 避免冒泡问题: MouseEnter和MouseLeave事件不会冒泡到父元素或其他元素,只在鼠标进入或离开元素本身时触发...当然究竟使用MouseEnter/MouseLeave还是MouseEnter/MouseLeave事件还是要看具体的业务场景,如果需要处理鼠标移入和移出元素的子元素时或者需要利用冒泡机制来实现功能,那么

    1.2K50

    JQuery中bind和unbind函数

    :blur、flcus、load、resize、scroll、unload、click、dblclikc、mousedown、mouseup、mousemove、mouseover、mouseout、mouseenter...、mouseleave、change、select、submit、keydown、keypress、keyup和error等,当然也可以是自定义名称。...有一个点击收起展开的事件,如果想要点击链接但是不触发div的点击事件,需要在触发链接的时候把div的点击事件禁用,这里我用到链接mouseenter事件是unbind删除div的事件。...这里还不算完,这时候只要鼠标进入链接区域,div的点击事件就删除了,我们还需要加入鼠标移出链接区域的时候恢复div点击事件。...(function(){ $(".test").unbind(); //删除.test的所有事件 }); $(".test a").mouseleave(function(){ $(".test").bind

    1.6K20

    如何实现 Vue 自定义组件中 hover 事件以及 v-model

    为了跟踪鼠标何时离开,可以使用mouseleave事件。 检测鼠标何时进入可以通过相应的mouseenter事件来完成,但是我们不使用这个。...原因是在深度嵌套 DOM 树上使用mouseenter时可能会出现严重的性能问题。这是因为mouseenter向输入的元素以及每个单独的祖先元素触发一个唯一的事件。 那我们会用什么来代替呢?...(想要阻止mouseover的冒泡事件就用mouseenter) 为了把知识点串联起来,我们使用Vue 事件侦听鼠标进入和离开时的状态,并相应地更新状态。... div @mouseover="hover = true" @mouseleave="hover = false" /> ----...我们不能像以前那样听mouseover和mouseleave事件。 如果Vue组件不发出那些事件,那么我们就不能监听它们。

    22.5K10
    领券