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

事件高级

比如:我们给页面的一个div注册了单击事件,当你单击div时,也就单击了body,单击了html,单击了document。 ?...4.实际开发我们很少使用事件捕获,我们更关注事件泡。...常情况下terget 和 this是一致的, 但有一种情况不同,那就是事件冒泡时(父子元素有相同事件单击元素,父元素的事件处理函数也会被触发执行), 这时候this指向的是父元素,因为它是绑定事件的元素对象...说白了就是,不给元素注册事件,给父元素注册事件,把处理代码父元素的事件执行。 生活的代理: 咱们班有100个学生,快递员有100个快递, 如果一个个的送花费时间较长。...js事件的代理: ? 事件委托的原理 给父元素注册事件,利用事件冒泡,当元素的事件触发,会冒泡到父元素,然后去控制相应的元素。

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

事件高级

DOM事件流 html的标签都是相互嵌套的,我们可以将元素想象成一个盒子装一个盒子,document是最外面的大盒子。 当你单击一个div时,同时你也单击div的父元素,甚至整个页面。 ​...那么是先执行父元素的单击事件,还是先执行div单击事件 ??? 事件流描述的是从页面接收事件的顺序。 事件发生时会在元素节点之间按照特定的顺序传播,这个传播过程即DOM事件流。...比如:我们给页面的一个div注册了单击事件,当你单击div时,也就单击了body,单击了html,单击了document。 ?...常情况下terget 和 this是一致的, 但有一种情况不同,那就是事件冒泡时(父子元素有相同事件单击元素,父元素的事件处理函数也会被触发执行), 这时候this指向的是父元素,因为它是绑定事件的元素对象...说白了就是,不给元素注册事件,给父元素注册事件,把处理代码父元素的事件执行。 生活的代理: ? js事件的代理: ?

1.3K20

JS事件

Click Me 当你点击了页面div 元素,那么这个 click...中所述案例,则单击 div 元素后,事件触发顺序如下: document html body div 也就是事件捕获过程,document 对象首先接收到 click 事件,然后事件沿 DOM 树向下依次传播...还以上述代码为例,单击 div 元素后的触发顺序则是: ?...DOM事件 DOM 事件,实际目标(div捕获阶段不会接收到事件,意味着捕获阶段事件从 document 到 html 再到 body 就会停止。...输出结果 可是,当我们将级的冒泡和捕获js位置调换后,输出的则是……级先冒泡,再捕获!如下: ? 输出结果2 这是什么原因呢?? 下期——事件处理顺序,进一步揭晓。

5.7K10

web前端常见面试题

点击元素时,浏览器运行了两种不同的阶段:捕获阶段和冒泡阶段。...捕获阶段的行为: 浏览器检查元素的最外层祖先,是否捕获阶段中注册了一个onclick事件处理程序,如果是,则运行它; 然后,它移动到单击元素的下一个祖先元素,并执行相同的操作...,然后是单击元素再下一个祖先元素,依此类推,直到到达实际点击的元素; 而冒泡与捕获恰恰相反: 浏览器检查实际点击的元素是否冒泡阶段中注册了一个onclick事件处理程序,如果是,则运行它; 然后它移动到下一个直接的祖先元素...因此上面代码点击元素时会先执行元素绑定的事件,然后向上冒泡,触发父元素绑定的事件。 addEventListener 函数的第三个参数是个布尔值。...可能指向 div 元素,也可能指向它的元素。

2.3K20

事件高级

事件发生时会在元素节点之间按照特定的顺序传播,这个传播过程即 DOM 事件流。 注意   1. JS 代码只能执行捕获或者冒泡其中的一个阶段。   ...事件对象的使用 事件触发发生时就会产生事件对象,并且系统会以实参的形式传给事件处理函数。 所以,事件处理函数声明1个形参用来接收事件对象。... IE6~8 ,浏览器不会给方法传递参数,如果需要的话,需要到 window.event 获取查找。...常情况下terget 和 this是一致的, 但有一种情况不同,那就是事件冒泡时(父子元素有相同事件单击元素,父元素的事件处理函数也会被触发执行),  这时候this指向的是父元素,因为它是绑定事件的元素对象...什么是事件委托 把事情委托给别人,代为处理。 事件委托也称为事件代理, jQuery 里面称为事件委派。 说白了就是,不给元素注册事件,给父元素注册事件,把处理代码父元素的事件执行。

1.2K10

「Web编程API」- 03

DOM事件流 html的标签都是相互嵌套的,我们可以将元素想象成一个盒子装一个盒子,document是最外面的大盒子。 当你单击一个div时,同时你也单击div的父元素,甚至整个页面。...比如:我们给页面的一个div注册了单击事件,当你单击div时,也就单击了body,单击了html,单击了document。 当时的2大浏览器霸主谁也不服谁!...常情况下terget 和 this是一致的,但有一种情况不同,那就是事件冒泡时(父子元素有相同事件单击元素,父元素的事件处理函数也会被触发执行),这时候this指向的是父元素,因为它是绑定事件的元素对象...什么是事件委托 把事情委托给别人,代为处理。 事件委托也称为事件代理, jQuery 里面称为事件委派。 说白了就是,不给元素注册事件,给父元素注册事件,把处理代码父元素的事件执行。...生活的代理 js事件的代理 事件委托的原理 给父元素注册事件,利用事件冒泡,当元素的事件触发,会冒泡到父元素,然后去控制相应的元素。

1.4K50

javascript事件流的原理

典型的例子有:页面加载完毕触发load事件;用户单击元素,触发click事件。 二、事件事件流描述的是从页面接收事件的顺序。... 上面这段html代码单击了页面的 元素, 冒泡型事件click事件传播顺序为 —》—》—》document 捕获事件click事件传播顺序为...DOM标准规定事件流包括三个阶段:事件捕获阶段、处于目标阶段和事件冒泡阶段。 事件捕获阶段:实际目标( )捕获阶段不会接收事件。也就是捕获阶段,事件从document到再到就停止了。...note: 1)、尽管“DOM2级事件”标准规范明确规定事件捕获阶段不会涉及事件目标,但是IE9、Safari、Chrome、Firefox和Opera9.5及更高版本都会在捕获阶段触发事件对象上的事件...如果新增其他元素(a,span,div等),直接修改事件代理的事件处理函数即可,不需要重新绑定处理器,不需要再次循环遍历。

1K10

前端成神之路-WebAPIs03

DOM事件流 html的标签都是相互嵌套的,我们可以将元素想象成一个盒子装一个盒子,document是最外面的大盒子。 当你单击一个div时,同时你也单击div的父元素,甚至整个页面。...比如:我们给页面的一个div注册了单击事件,当你单击div时,也就单击了body,单击了html,单击了document。 ? 当时的2大浏览器霸主谁也不服谁!...事件对象的使用 事件触发发生时就会产生事件对象,并且系统会以实参的形式传给事件处理函数。 所以,事件处理函数声明1个形参用来接收事件对象。 ?...常情况下terget 和 this是一致的, 但有一种情况不同,那就是事件冒泡时(父子元素有相同事件单击元素,父元素的事件处理函数也会被触发执行), 这时候this指向的是父元素,因为它是绑定事件的元素对象...说白了就是,不给元素注册事件,给父元素注册事件,把处理代码父元素的事件执行。 生活的代理: ? js事件的代理: ?

2.9K20

webAPIs03-属性选择器、环境对象this、事件、页面对象

如上图所示,任意事件被触发时总会经历两个阶段:【捕获阶段】和【冒泡阶段】。 简言之,捕获阶段是【从父到】的传导过程,冒泡阶段是【从子向父】的传导过程。...,其祖先元素的单击事件也【相继触发】,这是为什么呢?...结合事件流的特征,我们知道当某个元素的事件被触发时,事件总是会先经过其祖先才能到达当前元素,然后再由当前元素向祖先传递,事件流动的过程遇到相同的事件便会被触发。...再来关注一个细节就是事件相继触发的【执行顺序】,事件的执行顺序是可控制的,即可以捕获阶段被执行,也可以冒泡阶段被执行。...如果事件冒泡阶段执行的,我们称为冒泡模式,它会先执行盒子事件再去执行父盒子事件,默认是冒泡模式。 如果事件捕获阶段执行的,我们称为捕获模式,它会先执行父盒子事件再去执行盒子事件

74710

深入理解JavaScript事件传播机制:事件冒泡和事件捕获

前言JavaScript事件冒泡和事件捕获是两种不同的事件传播方式。当一个事件被触发时,它会从最内层的元素开始,然后逐级向外传播,直到最外层的元素。...在这个过程事件会经过每一个元素,直到它到达最内层的元素。本文中,我们将详细了解事件冒泡和事件捕获,并探讨它们JavaScript的实现以及如何使用它们。...事件冒泡事件处理程序会按照它们被注册的顺序执行,也就是说,先注册的事件处理程序会先执行。相反,事件捕获事件处理程序会按照它们被注册的相反顺序执行,也就是说,后注册的事件处理程序会先执行。...这是因为事件从文档的最外层开始向内传播,然后经过外部div、内部div和按钮,直到它到达按钮。结论JavaScript事件冒泡和事件捕获是两种不同的事件传播方式。...事件冒泡事件处理程序会按照它们被注册的顺序执行;事件捕获事件处理程序会按照它们被注册的相反顺序执行。我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

82921

5、React组件事件详解

单击触发react事件 React并不是将click事件绑在该div的真实DOM上,而是document处监听所有支持的事件,当事件发生并冒泡至document处时,React...,而不是普通的冒泡,并且没有捕获阶段;只有鼠标指针穿过被选元素时,才会触发。...ReactEvent 通过设置原生事件绑定为冒泡阶段调用,且每次测试单击元素按钮: 元素原生事件程序阻止事件传播,则打印出: 元素原生事件绑定事件触发; 父元素元素事件程序阻止事件传播...,则打印出: 元素原生事件绑定事件触发 父组件原生事件绑定事件触发 元素React合成事件onClick阻止事件传播,则打印出: 元素原生事件绑定事件触发 父组件原生事件绑定事件触发...元素React合成事件绑定事件触发 父元素React合成事件onClick阻止事件传播,则打印出: 元素原生事件绑定事件触发 父组件原生事件绑定事件触发 元素React合成事件绑定事件触发

3.7K10

JavaScript事件

事件类型 (1)单击事件onClick   当用户单击鼠标按钮时,产生onClick事件。同时onClick指定的事件处理程序或代码将被调用执行。...id="tg"> 理解事件的基本概念 如果单击了p标签,那么,如果是事件冒泡流的事件流机制,则click事件将按照如下顺序进行执行...如果采用捕获流的事件流机制,则click事件的执行顺序为:document —— html —— body —— div —— p 实例: <!...谈一谈事件方面如何优化性能——事件委托和事件处理程序的移除 JavaScript代码当中,添加到页面事件越多,页面的性能也就越差。...换句话说,只要可单击的元素页面呈现出来了,那么它就立刻具备了相应的功能。 整个页面占用的内存空间会更少,从而提升了整体的性能。

2K60

面试官:什么是js事件流以及事件模型?

一、事件 了解什么是js事件流之前,我们先了解一下什么是js的事件。...三、事件流模型 事件又有着两个模型 事件捕获 事件冒泡 这里我们引用一张图,以便于理解事件流模型 事件冒泡 当节点事件被触发时,会由内圈到外圈 div-->body-->html-->document...后来ECMAScript将两种模型进行了整合,制定了统一的标准:先捕获冒泡 现在整合后的标准事件流就有了三个阶段: 事件捕获阶段(目标捕获阶段不接收事件) 目标阶段 (事件的执行阶段,此阶段会被归入冒泡阶段...参数 描述 event 必须,字符串,指定事件名 function 必须,指定事件触发时要执行的函数 useCapture 可选值,指定事件是否捕获或者冒泡阶段执行;1、true:事件句柄捕获阶段执行...六、stopPropagation()阻止捕获 stopPropagation() 方法防止调用相同事件的传播。 传播意味着向上冒泡到父元素或向下捕获元素。

1.9K10

vue—你必须知道的

ref 给元素或组件注册引用信息。引用信息将会注册父组件的 $refs 对象上 Greet 内联js语句 Say hi 事件修饰符 .stop 阻止单击事件冒泡....prevent 不再重载页面 .capture 使用事件捕获模式 .self 只当事件该元素本身(不是元素)触发时触发 .once 事件只会触发一次 键值修饰符 .enter .tab .delete...> 修饰符 .lazy 从输入转变为 change 事件同步 .number 自动将用户的输入值转为 Number 类型 .trim 自动过滤用户输入的首尾空格 父子组件通信 props (父–>...> on/emit (–>父) 父组件可以使用组件的地方直接用 v-on 来监听子组件触发的事件 不能用 $on 侦听子组件抛出的事件,而必须在模板里直接用 v-on 绑定 <button-counter

1.9K20

今天聊聊DOM事件的传播机制

> 如果单击了页面的 div 元素,那么这个 click 事件沿 DOM 树向上传播,每一级节点上都会发生,按照如下顺序进行传播: div body...事件捕获的思想是不太具体的节点应该更早接收到事件,而最具体的节点应该最后接收到事件事件捕获的思想是事件到达预定目标之前就捕获它。 以同样的 HTML 结构为例来说明事件捕获,如下: 事件捕获过程,document 对象首先接收到 click 事件,然后事件沿 DOM 树依次向下,一直传播到事件的实际目标,即 div...事件捕获阶段:实际目标 div 捕获阶段不会触发事件捕获阶段从 window 开始,然后到 document、html,最后到 body 意味着捕获阶段结束。... JavaScript ,添加到页面上的事件处理程序数量将直接关系到页面整体的运行性能。导致这一问题的原因是多方面的。 首先,每个函数都是对象,都会占用内存。内存的对象越多,性能就越差。

96720

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券