首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

梳理下常见的不冒泡事件

Focus 事件 事件触发顺序见下表: Event Type Notes User shifts focus focusin 第一个目标元素获得焦点之前触发 focus 第一个目标元素获得焦点之后触发...User shifts focus focusout 第一个目标元素失去焦点之前触发 focusin 第二个目标元素获得焦点之前触发 blur 第一个目标元素失去焦点之后触发 focus 第二个元素获得焦点之后触发...A mouseenter B mouseenter C mousemove C Multiple mousemove events 直接移出元素 C... mouseout C mouseleave...可以看到 mouseover/mouseout 事件只触发一次,mouseenter/mouseleave 事件触发了三次 然后再看下 click 元素 |Event Type|Notes| |--|-...不冒泡 ❌•mouseleave 不冒泡 ❌•mousemove•mouseout•mouseover•mouseup mouseenter/mouseleave 看这个单词也是跟 focusin/focusout

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

jquery 绑定事件 - blur() 失去焦点 - focus() 获取焦点

事件函数列表 blur() 元素失去焦点 focus() 元素获得焦点 click() 鼠标单击 mouseover() 鼠标进入(进入子元素也触发) mouseout() 鼠标离开(离开子元素也触发)...mouseenter() 鼠标进入(进入子元素不触发mouseleave() 鼠标离开(离开子元素不触发) hover() 同时为mouseentermouseleave事件指定处理函数 ready...好了,有了基本的HTML架构之后,就可以来演示了。 focus() 元素获得焦点 首先先来这个focus()函数。 ? 可以看到当获取焦点的时候,就立即弹出alert()。...当获取到文本框内的值之后,就可以对其进行正则验证或者其他方式的校验。 那么这里有一个疑问,就是密码框输入内容的话,能否获取到值呢? ? 密码框也是可以正常获取值的。 完整代码 <!

12K30

JavaScript鼠标事件细讲:执行顺序+注意事项+区别比对

mouseenter:当鼠标位于元素上时触发 mouseenter 事件,通常与 mouseleave 配合使用。mousemove:鼠标元素上移动时触发 moudemove 事件。...mouseout:鼠标元素上移开时触发 mouseout 事件。mouseleave:鼠标元素上移开时触发 mouseleave 事件。...区别点:mouseenter不会冒泡,简单的说,它不会被它本身的子元素的状态影响到.mouseover就会被它的子元素影响到,触发子元素的时候,mouseover会冒泡触发它的父元素....:mouseover和mouseenter的异同体现在两个方面:是否支持冒泡事件的触发时机可见mouseover事件因其具有冒泡的性质,子元素内移动的时候,频繁被触发,如果我们不希望如此,可以使用mouseenter...结合其对称事件, mouseleave, mouseenter DOM事件的行为方式与CSS  :hover 伪类非常相似。还有就是:mouseover先触发mouseenter触发

2.8K21

jQuery 事件

实例: 元素上移动鼠标。 选取单选按钮 点击元素 事件中经常使用术语"触发"(或"激发")例如: "当您按下按键时触发 keypress 事件"。...keyup focus scroll mouseleave blur unload hover jQuery 事件方法语法 jQuery 中,大多数 DOM 事件都有一个等效的 jQuery...该事件方法 jQuery 语法 章节中已经提到过。 click() click() 方法是当按钮点击事件被触发时会调用一个函数。 该函数在用户点击 HTML 元素时执行。...mouseenter() 方法触发 mouseenter 事件,或规定当发生 mouseenter 事件时运行的函数: $("#p1").mouseenter(function(){ alert...mouseleave() 方法触发 mouseleave 事件,或规定当发生 mouseleave 事件时运行的函数: $("#p1").mouseleave(function(){ alert

2.2K50

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

mouseenter() 鼠标进入(进入子元素不触发mouseleave() 鼠标离开(离开子元素不触发) hover() 同时为mouseentermouseleave事件指定处理函数 ready...测试发现,mouseenter()这个事件,移动到子元素#small div也是会被触发的。 那么如果重叠起来,子元素进入会不会触发呢? ?...当子元素父元素内部的时候,mouseenter()就只会触发一次而已。也就是刚刚进入父元素#big div的时候触发,再进入#small div的时候就不会触发了。...mouseleave() 鼠标离开(离开子元素不触发) 相信这个mouseleave()也是一样的特性,跟mouseenter()差不多才对,下面来看看。 ? ?...hover() 同时为mouseentermouseleave事件指定处理函数 这个hover()方法其实就是mouseenter()和mouseleave()的合并方法,如下: ? ?

2.8K30

ReactPortals传送门

需要注意的是MouseEnter/MouseLeave捕获阶段执行事件处理函数的,而不能在冒泡阶段过程中进行,而MouseOver/MouseOut是可以捕获阶段和冒泡阶段选择一个阶段来执行事件处理函数的...我个人还是比较推荐使用MouseEnter/MouseLeave,主要有这么几点理由: 避免冒泡问题: MouseEnterMouseLeave事件不会冒泡到父元素或其他元素,只鼠标进入或离开元素本身时触发...事件也是同样会多次触发,可以将父元素与所有子元素都看作独立区域,而事件会冒泡到父元素来执行事件绑定函数,这可能导致重复的事件处理和不必要的逻辑触发,而MouseEnterMouseLeave事件不会重复触发...当然究竟使用MouseEnter/MouseLeave还是MouseEnter/MouseLeave事件还是要看具体的业务场景,如果需要处理鼠标移入和移出元素的子元素时或者需要利用冒泡机制来实现功能,那么...onClick与onClickCapture来表示冒泡和捕获阶段事件绑定的,而即使是React合成事件中MouseEnter/MouseLeave也只会在捕获阶段执行,所以没有Capture事件绑定属性

16150

mouseenter以及mouseleave兼容性

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

1.4K70

JQuery之内置函数响应事件

2.mouseenter  当鼠标指针穿过元素时,会发生 mouseenter 事件。该事件大多数时候会与mouseleave 事件一起使用。...与 mouseover 事件不同,只有鼠标指针穿过被选元素时,才会触发 mouseenter 事件。如果鼠标指针穿过任何子元素,同样会触发 mouseover 事件。...与 mouseout 事件不同,只有鼠标指针离开被选元素时,才会触发 mouseleave 事件。如果鼠标指针离开任何子元素,同样会触发 mouseout 事件。...注释:与 mouseleave 事件不同,不论鼠标指针离开被选元素还是任何子元素,都会触发 mouseout 事件。只有鼠标指针离开被选元素时,才会触发 mouseleave 事件。...注释:与 mouseenter 事件不同,不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件。只有鼠标指针穿过被选元素时,才会触发 mouseenter 事件。

2.1K60

JQ事件和事件对象

3 dbclick()双击事件    4 mousedown() /mouseup() 鼠标按下和松开事件    5 mouseover()/mouseout() 鼠标移入和移出事件   6 mouseenter...()/mouseleave() 鼠标移入移出事件   //mouseover()/mouseout()和mouseenter()/mouseleave()的区别    首先来了解一下事件冒泡和捕获    ...事件冒泡:内部事件先触发,然后触发外部事件     事件捕获:外部事件先被触发,然后触发内部元素     mouseover()/mouseout() :鼠标移入“所选元素以及后代都会触发”    ...mouseenter()/mouseleave():鼠标移入“所选元素”才会触发,如果鼠标移入所选元素的后代时,不会触发(增加阻止事件冒泡功能) <div class="div1"...可以父元素上检测子元素获得焦点的情况 而focusout可以父元素上检测子元素失去焦点情况  四 其他事件   1 scroll()滚动滚动条时触发的事件      2  resize()当调整窗口大小时触发的事件

4.1K20

事件类型之鼠标事件

click:按下鼠标时触发。 dblclick:同一个元素上双击鼠标时触发。 mousedown:按下鼠标键时触发。 mouseup:释放按下的鼠标键时触发。...mouseenter:鼠标进入一个节点时触发,进入子节点不会触发这个事件 mouseover:鼠标进入一个节点时触发,进入子节点会再一次触发这个事件 mouseout:鼠标离开一个节点时触发,离开父节点也会触发这个事件...mouseleave:鼠标离开一个节点时触发,离开父节点不会触发这个事件 wheel:滚动鼠标的滚轮时触发 事件注意事项 click事件指的是,用户同一个位置先完成mousedown动作,再完成...因此,触发顺序是,mousedown首先触发,mouseup接着触发,click最后触发。 dblclick事件则会在mousedown、mouseup、click之后触发。...mouseover事件和mouseenter事件,都是鼠标进入一个节点时触发。两者的区别是,mouseenter事件只触发一次,而只要鼠标节点内部移动,mouseover事件会在子节点上触发多次。

2.4K30

面试官:mouseenter与mouseover有何异同?怎么模拟mouseenter

不知道大家面试或者工作过程中有没有被mouseover和mouseenter(对应的是mouseout和mouseleave)事件所困扰。...自己之前面试的时候就有被问到诸如mouseover和mouseenter事件的异同之类的问题?...大概意思是:和mouseover不同的是,mouseenter不支持事件冒泡 (英语比较渣,凑合看哈) 由于mouseenter不支持事件冒泡,导致一个元素的子元素上进入或离开的时候会触发其mouseover...和mouseout事件,但是却不会触发mouseentermouseleave事件 我们用一张动图来看看他们的区别(或者点击该链接体验)。...可见mouseover事件因其具有冒泡的性质,子元素内移动的时候,频繁被触发,如果我们不希望如此,可以使用mouseenter事件代替之,但是早期只有ie浏览器支持该事件,虽然现在大多数高级浏览器都支持了

1K30

mouseenter与mouseover为何这般纠缠不清?

前言 项目地址 不知道大家面试或者工作过程中有没有被mouseover和mouseenter(对应的是mouseout和mouseleave)事件所困扰。...自己之前面试的时候就有被问到诸如mouseover和mouseenter事件的异同之类的问题?...,凑合看哈) 由于mouseenter不支持事件冒泡,导致一个元素的子元素上进入或离开的时候会触发其mouseover和mouseout事件,但是却不会触发mouseentermouseleave事件...我们给左右两边的ul分别添加了mouseover和mouseenter事件,当鼠标进入左右两边的ul时,mouseover和mouseenter事件都触发了,但是当移入各自的子元素li的时候,触发了左边...可见mouseover事件因其具有冒泡的性质,子元素内移动的时候,频繁被触发,如果我们不希望如此,可以使用mouseenter事件代替之,但是早期只有ie浏览器支持该事件,虽然现在大多数高级浏览器都支持了

1.7K70

每天10个前端小知识 【Day 3】

4. mouseover 和 mouseenter 有什么区别?...当鼠标移动到元素上时就会触发 mouseenter 事件,类似 mouseover,它们两者之间的差别是 mouseenter 不会冒泡。...由于 mouseenter 不支持事件冒泡,导致一个元素的子元素上进入或离开的时候会触发其 mouseover 和 mouseout 事件,但是却不会触发 mouseentermouseleave...浏览器的JS引擎遇到setTimeout,拿走之后不会立即放入异步队列,同步任务执行之后,timer模块会到设置时间之后放到异步队列中。...捕获阶段:从window对象传导到目标节点(上层传到底层)称为“捕获阶段”(capture phase),捕获阶段不会响应任何事件; 目标阶段:目标节点上触发,称为“目标阶段” 冒泡阶段:从目标节点传导回

10810
领券