JavaScript的事件、事件处理器(事件监听器)、事件捕获、事件冒泡、事件委托都是啥,简单讲
咱只想好好的 2024-09-03 13:33:01 阅读 98
什么是事件
这是mdn原话,简单来讲
事件:就是在你的浏览器上做了某些操作后,可以执行某些代码,从而实现某些功能
下面就是一些事件:
就拿一个按钮来说,我点击 按钮 ,然后按钮做出一些反应或是达到某种效果就是一个事件了
事件处理器(事件监听器)
那么下面不得不提到事件处理器(事件监听器拉)
如果只是一个按钮,那还达不到这个效果,要达到这个效果就要借助 事件处理器 我们把借助事件处理器 就叫做 注册一个事件处理器
有2种方式
方式一:使用 addEventListener()
如果
也可以
那么最后的效果就是点击一次按钮, functionA 和functionB两个函数都执行
我为啥要说这个呢,因为还有第二种方式
方式二: 使用内联事件处理器 (这是不好的做法,知道就好)
事件冒泡
什么是事件冒泡呢,大家可以想一下 一个水泡从小池底下泥土里慢慢冒到水面的样子
javascript中,什么是事件冒泡呢
下面有 3个盒子 box-L 、box-M 、 box-S ,一个按钮
他们的关系 box-L里有 box-M , box-M里有 box-S ,box-S里有 按钮,并且为他们都添加事件处理器
被点击的效果如下
不难发现,按钮在最里面,但是它确实第一个 触发的,然后依次是 boxS、boxM、boxL,从里到外的触发,这就是事件冒泡
事件捕获
而事件捕获是啥,其实 事件捕获 就像是事件冒泡反过来一样
还有一个要注意的就是 事件捕获 默认是 禁用的,需要开启它,要在addEventListener() 的capture选项中启用它
效果如下:(这个是 事件捕获,标题忘记改了)
事件委托
最后,我们讲一下事件委托
先讲一下 委托 什么意思 , 就是一件你的事情 让别人 帮你做,你自己不做,事件委托也差不多这个意思
一个事件,你叫 别人来做 ,你只负责 叫 就好 这样就能达到 委托 的效果
下面 是一个 boss 盒子里面有 三个 box小盒子
只给boss 添加 事件处理器 里面的 三个 box小盒子是没有事件处理器的
效果图如下:
不难看出,如果没用事件委托的话,要达到这个效果那就得给 3 的box都添加事件处理器,box少还好说,如果有上百上千的个box,那要添加这么多事件处理器想想也不合理,有了事件委托,很好解决这一问题
文章内容、图片都来自mdn,本文只是记录一下自己所学,并分享给有需要的人
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。