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

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

mouseenter:当鼠标位于元素上时触发 mouseenter 事件,通常与 mouseleave 配合使用。mousemove:鼠标在元素上移动时触发 moudemove 事件。...区别点:mouseenter不会冒泡,简单的说,它不会被它本身的子元素的状态影响到.mouseover就会被它的子元素影响到,在触发子元素的时候,mouseover会冒泡触发它的父元素....:mouseover和mouseenter的异同体现在两个方面:是否支持冒泡事件的触发时机可见mouseover事件因其具有冒泡的性质,在子元素内移动的时候,频繁被触发,如果我们不希望如此,可以使用mouseenter...》mouseup-》click-》blurmousedown、mouseup、click若在同一个元素上按下并松开鼠标左键,会依次触发mousedown、mouseup、click,前一个事件执行完毕才会执行下一个事件若在同一个元素上按下并松开鼠标右键...是左键点击还是右键点击由它的一个叫button的属性判定。

3.9K21

ReactPortals传送门

MouseLeave:当鼠标光标离开一个元素时触发,该事件仅在鼠标从元素内部离开时触发,不会对元素外部的父元素产生影响。...需要注意的是MouseEnter/MouseLeave是在捕获阶段执行事件处理函数的,而不能在冒泡阶段过程中进行,而MouseOver/MouseOut是可以在捕获阶段和冒泡阶段选择一个阶段来执行事件处理函数的...实际上两种事件流都是可以阻断的,只不过MouseEnter/MouseLeave需要在捕获阶段来stopPropagation,一般情况下是不需要这么做的。...事件也是同样会多次触发,可以将父元素与所有子元素都看作独立区域,而事件会冒泡到父元素来执行事件绑定函数,这可能导致重复的事件处理和不必要的逻辑触发,而MouseEnter和MouseLeave事件不会重复触发...MouseOver和MouseOut事件就是更好的选择,MouseEnter/MouseLeave能提供更大的灵活性和控制力,让我们能够创建复杂的交互效果,并更好地处理用户与元素的交互,当然应用的复杂性也会相应提高

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

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

    监听正确的事件 那么,我们需要监听哪些事件? 我们想知道什么时候鼠标悬停在元素上,这可以通过跟踪鼠标何时进入元素以及何时离开元素来确定。为了跟踪鼠标何时离开,可以使用mouseleave事件。...检测鼠标何时进入可以通过相应的mouseenter事件来完成,但是我们不使用这个。 原因是在深度嵌套 DOM 树上使用mouseenter时可能会出现严重的性能问题。...这是因为mouseenter向输入的元素以及每个单独的祖先元素触发一个唯一的事件。 那我们会用什么来代替呢? 我们使用mouseover事件。...二者的本质区别在于,mouseenter不会冒泡,简单的说,它不会被它本身的子元素的状态影响到.但是mouseover就会被它的子元素影响到,在触发子元素的时候,mouseover会冒泡触发它的父元素....(想要阻止mouseover的冒泡事件就用mouseenter) 为了把知识点串联起来,我们使用Vue 事件侦听鼠标进入和离开时的状态,并相应地更新状态。

    20.9K10

    JQuery几个mouse事件的区别和用法

    mouseenter:当鼠标位于元素上时触发 mouseenter 事件,通常与 mouseleave 配合使用。 mousemove:鼠标在元素上移动时触发 moudemove 事件。...mouseup 和 mousedown 没什么好解释的,主要说一下 mouseover 和 mouseenter ; mouseout 和 mouseleave 的区别。...其实如果是一个单独的元素,也并看不出什么问题,而且我们也常用 mouseover 和 mouseout 组合。...原来这两个组合是由区别的,一个单独的元素时效果几乎是一样的,问题就在于它们的子元素。...打印结果如下图, mouseover 和 mouseout 在包含子元素的情况下会多次触发,mouseover 即使不包含子元素也会不断触发,mouseenter 在鼠标划入时触发一次,mouseleave

    2.8K00

    jQuery 事件

    jQuery 是为事件处理特别设计的。 ---- 什么是事件? 页面对不同访问者的响应叫做事件。 事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。 实例: 在元素上移动鼠标。...keyup focus scroll mouseleave blur unload hover jQuery 事件方法语法 在 jQuery 中,大多数 DOM 事件都有一个等效的 jQuery...页面中指定一个点击事件: $("p").click(); 下一步是定义了点击后触发事件。您可以通过一个事件函数实现: $("p").click(function(){ // 动作触发后执行的代码!!...该事件方法在 jQuery 语法 章节中已经提到过。 click() click() 方法是当按钮点击事件被触发时会调用一个函数。 该函数在用户点击 HTML 元素时执行。...在下面的实例中,当点击事件在某个 元素上触发时,隐藏当前的 元素: 实例 $("p").click(function(){ $(this).hide(); }); dblclick(

    2.2K50

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

    前言 项目地址 不知道大家在面试或者工作过程中有没有被mouseover和mouseenter(对应的是mouseout和mouseleave)事件所困扰。...大概意思是:和mouseover不同的是,mouseenter不支持事件冒泡 (英语比较渣?...,凑合看哈) 由于mouseenter不支持事件冒泡,导致在一个元素的子元素上进入或离开的时候会触发其mouseover和mouseout事件,但是却不会触发mouseenter和mouseleave事件...造成以上现象本质上是mouseenter事件不支持冒泡所致。 如何模拟mouseenter事件。...详细代码点击 代码示例点击 好了,我们已经通过mouseove事件完整的模拟了mouseenter事件,但是反过头来看看 对于ul上添加的mouseover事件来说,relatedTarget只可能是

    1.7K70

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

    不知道大家在面试或者工作过程中有没有被mouseover和mouseenter(对应的是mouseout和mouseleave)事件所困扰。...大概意思是:和mouseover不同的是,mouseenter不支持事件冒泡 (英语比较渣,凑合看哈) 由于mouseenter不支持事件冒泡,导致在一个元素的子元素上进入或离开的时候会触发其mouseover...和mouseout事件,但是却不会触发mouseenter和mouseleave事件 我们用一张动图来看看他们的区别(或者点击该链接体验)。...造成以上现象本质上是mouseenter事件不支持冒泡所致。 如何模拟mouseenter事件。...重新回顾一下文章最初的那张图,根据上面的解释,对于ul上添加的mouseover事件来说,relatedTarget只可能是 ul的父元素wrap(移入ul时,此时也是触发mouseenter事件的时候

    1.1K30

    【C#】使用IExtenderProvider为控件添加扩展属性,像ToolTip那样

    )中显示该项的功能说明——很多软件都这样做,比如著名的Beyond Compare,如图: 对于这个效果,很容易想到的做法是分别为各个菜单项和工具栏项(下称item)注册MouseEnter和MouseLeave...该方法的作用显然是用来设置item的描述文本的。具体实现逻辑上,它主要要做两件事:①把item及其value存入集合;②注册item的相关事件。...即当item发生了什么时要做什么事,本例当然是当item发生MouseEnter和MouseLeave时,要做一些事,所以得注册item的这俩事件。...说到这里,其实可以理解显示item功能描述的核心实现仍然是基于对相关事件的注册,也就是说本质上,与前面提到的分别为各个item注册事件这种看起来原始且笨的方式是一样一样的,用了ToolDescribe也没有什么高大上的地方...当然这里说的是应用层面,底层VS对IExtenderProvider程序做了些什么那自然是高大上的; 6、实现上述事件的处理方法,本例就是item_MouseEnter和item_MouseLeave,

    1.7K20

    JQuery之内置函数响应事件

    今天给大家介绍一下on函数中events的种类和用法。 具体我把它分为:键盘事件,鼠标事件,input事件,还有一个是基础事件(例如:滚动,界面大小变化等等之类的)。...如果鼠标指针穿过任何子元素,同样会触发 mouseover 事件。 3.mouseleave  当鼠标指针离开元素时,会发生 mouseleave 事件。...mousemove事件处理函数会被传递一个变量——事件对象,其.clientX 和 .clientY 属性代表鼠标的坐标 5.mouseout 当鼠标指针从元素上移开时,发生 mouseout 事件。...与 click 事件不同,mouseup 事件仅需要放松按钮。当鼠标指针位于元素上方时,放松鼠标按钮就会触发该事件。 8.click 当鼠标点击并松开的时候会触发每一个匹配元素的click事件。...基本的用法就这些,现在我用click举一个例子给大家介绍一下,这些方法是怎么实现和调用的。

    2.1K60

    4-Jquery学习四-事件操作

    ; } }; //为n5绑定mouseenter mouseleave两个事件 $("#n5").bind( eventsMap ); 3,unbind unbind()函数用于移除匹配元素上绑定的一个或多个事件的事件处理函数...9,off off()函数用于移除元素上绑定的一个或多个事件的事件处理函数。...使用该函数可以手动触发执行元素上绑定的事件处理函数,也会触发执行该元素的默认行为。...这里介绍的load()是一个事件函数,jQuery中还有一个同名的Ajax函数load(),用于通过Ajax加载html文档内容。...事件绑定处理函数(可以绑定多个,触发时按照绑定顺序依次执行): focusin是支持冒泡的,当我们把鼠标光标放入文本框时,该事件冒泡传递到父元素p上,因此可以在p元素上触发focusin事件。

    4.5K90

    AngularJS 中的事件机制是什么样的?如何使用它来实现交互功能?

    事件处理器通常与 HTML 元素相关联,当事件在元素上发生时被调用。以下是一些常见的 AngularJS 事件:ng-clickng-click 事件在元素上绑定点击事件。...ng-mouseenter 和 ng-mouseleaveng-mouseenter 和 ng-mouseleave 事件分别在鼠标进入和离开元素时触发。这些事件通常用于实现悬停效果或显示隐藏的元素。...例如,下面的代码在一个区域上绑定了 ng-mouseenter 和 ng-mouseleave 事件:mouseenter="showTooltip = true" ng-mouseleave...以下是使用表达式和函数作为事件处理器的示例:使用表达式点击我在上述代码中,每次按钮被点击时,count 变量的值将增加...当一个元素上绑定了多个事件处理器时,点击该元素会触发所有绑定的处理器。可以使用 stopPropagation 修饰符阻止事件的进一步传播。

    21720

    JavaScript笔记(22)

    mouseover和mouseenter的区别 当鼠标移动到元素上时就会触发mouseenter事件 mouseover: 鼠标经过自身盒子会触发,经过子盒子还会触发(冒泡). mouseenter:...只有经过自身盒子才会触发(不会冒泡) mouseenter搭配鼠标离开mouseleave也不会冒泡 接下来学习新的知识:动画 动画 动画实现原理 核心原理: 通过定时器setInterval()不断移动盒子...在之前做的时候就发现会有一个小bug: 我们现在让第二个盒子只有在点击按钮以后才会向右移动 但是如果我们多次点击按钮,就会发生这样的事情: 下面的盒子会越跑越快...这是因为我们每点一次按钮...,就会新建一个定时器,所以会越来越快,那么该如何解决呢?...停止的条件是:让当前盒子位置等于目标位置就停止定时器 虽然做出来了,但还是感觉有bug...

    68020

    JQuery中bind和unbind函数

    bind() 方法为被选元素添加一个或多个事件处理程序,并规定事件发生时运行的函数 unbind() 方法移除被选元素的事件处理程序。...、mouseout、mouseenter、mouseleave、change、select、submit、keydown、keypress、keyup和error等,当然也可以是自定义名称。...p").unbind("click",test);$("p").bind("click",test); 注意:要定义 .bind() 必须指明什么事件和函数现在来看个简单的demo ,整个div有一个点击收起展开的事件...,如果想要点击链接但是不触发div的点击事件,需要在触发链接的时候把div的点击事件禁用,这里我用到链接mouseenter事件是unbind删除div的事件。...这里还不算完,这时候只要鼠标进入链接区域,div的点击事件就删除了,我们还需要加入鼠标移出链接区域的时候恢复div点击事件。

    1.1K20

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

    mouseenter() 鼠标进入(进入子元素不触发) mouseleave() 鼠标离开(离开子元素不触发) hover() 同时为mouseenter和mouseleave事件指定处理函数 ready...写一个简单的两个嵌套div来演示一下看看,如下: ? ? 进入子元素也会触发mouseover()事件,那么如果#small的div没有嵌套在里面是否会触发呢? 这样应该就不会。 ?...这样就像是类似事件冒泡,不过是子元素将mouseover()传递冒泡给父元素,就算子元素没在#big里面,也会触发这个事件。...果然,这个子元素也是会触发mouseout()事件的。 mouseenter() 鼠标进入(进入子元素不触发) 上面两个事件都是具备事件冒泡的特性,看看这个有没有,如下: ? ?...hover() 同时为mouseenter和mouseleave事件指定处理函数 这个hover()方法其实就是mouseenter()和mouseleave()的合并方法,如下: ? ?

    3K30

    WinForm企业应用框架设计【三】框架窗体设计;动态创建菜单;

    最上面的Panel是存放顶级菜单用的 (top menu) 最下面的panel是存放状态信息和系统版本用的 左边的Panel又分为两个panel 上面的是sub menu header  下面的是sub...   tabs是为了存放用户打开过的业务窗体的标题;当用户点击某个tab,将激活该窗体(在child form中显示)   child form是当前正在操作的业务窗体   (这里有例子会容易理解一些...returnFlag = true; } #endif return returnFlag; } 由于创建菜单~和响应菜单的点击事件需要很多代码...只不过是改变了这个label的背景颜色和文字颜色 注意:这些颜色的值~应该放到资源或者缓存里去~ 鼠标弹起事件~就说明客户点击了这个lable 我们把tag属性转换成MenuModel 然后就开始创建子菜单了...); 有了这一句子菜单的宽度会根着Left Panel的宽度的变化而变化 同时也注册了鼠标的滑入、滑出、弹起事件 弹起事件就是我们动态创建业务窗体的事件 我们放到后一节内容介绍 滑入和滑出的代码如下:

    92630

    【云端架构】前端jQuery鼠标事件精选

    鼠标事件是指用户在移动鼠标光标或者点击任意鼠标键时触发的事件,jQuery中封装了基本上所有的鼠标事件包括点击,双击,移动等鼠标事件,下面我们就来看下这些事件的语法和用法 鼠标事件是在用户移动鼠标光标或者使用任意鼠标键点击时触发的...1、click事件:点击鼠标左键时触发 $('p').click(function()); 2、dbclick事件:迅速连续的两次点击时触发 $('p').dbclick(function());...5、mouseover事件:鼠标从一个元素移入另一个元素时触发 mouseout事件:鼠标移出元素时触发         $('p').mouseover(function()); $('p').mouseout...(function()); 6、mouseenter事件:鼠标移入元素时触发 mouseleave事件:鼠标移出元素时触发 $('p').mouseenter(function()); $('p')....mouseleave(function()); 7、hover事件 $('p').hover( function(), function() ); 8、toggle事件:鼠标点击切换事件 $('p').

    1.8K60
    领券