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,本文只是记录一下自己所学,并分享给有需要的人



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。