addEventListener是一种给元素绑定事件的方法
例如绑定点击事件,这样元素在被点击之后就会执行一些操作

let element = document.getElementById("element");
element.addEventListener("click",function(e) {console.log("点击了");}
);

addEventListener有三个参数
1、type
表示所要监听事件类型的字符串。例如要给元素绑定点击事件,那么type就设置为"click"
2、listener
回调函数,表示事件触发后所要执行的动作,例如点击后输出“点击了”
3、options
第三个参数options是一个可选参数,可以传一个boolean,也可以传一个对象(面试阿里时被问了addEventListener第三个参数可不可以传对象,当时没答出来)

当传入一个boolean时,false表示事件在冒泡阶段触发(默认),true表示事件在捕获阶段触发,
当传入一个对象时,可以设置这些值

{capture:  Boolean,false表示事件在冒泡阶段触发(默认),true表示事件在捕获阶段触发once:  Boolean,true表示事件在触发一次后移除,默认是falsepassive: Boolean,设置为true时,表示 listener 永远不会调用 preventDefault()。如果 listener 仍然调用了这个函数,客户端将会忽略它并抛出一个控制台警告。signal:AbortSignal,该 AbortSignal 的 abort() 方法被调用时,监听器会被移除。
}

看起来参数有些多好像有些复杂,但其实并不复杂,前三个参数多看几遍就能理解其中的含义了,

具体来讲一下第四个参数signal
这个参数是用来移除事件的,它是一个AbortSignal对象(字面理解废弃信号)。当该AbortSignal对象的控制器AbortController(字面理解废弃控制器)发出废弃信号(abort()方法被调用)时,绑定事件将被移除。
没听懂是吗?
还是举个例子吧。
例如要实现这么一种效果,5s前点击某元素可以出发点击事件,5s后点击该元素就不再触发点击事件了,可以这样写代码:

let controller = new AbortController();
let signal= controller.signal;let element = document.getElementById("element");
element.addEventListener("click",function (e) {console.log("点击了");},{signal: signal,}
);//设置5秒后发出废弃信号
setTimeout(function(){controller.abort()
}, 5000)

从中我们可以看出AbortController对象可以调用废弃方法abort()使AbortSignal对象变为一个废弃信号,此时AbortSignal的aborted属性将变为true。

参考MDN:https://developer.mozilla.org/zh-CN/docs/Web/API/EventTarget/addEventListener

js addEventListener绑定事件方法(详细介绍)相关推荐

  1. js循环绑定事件问题及解决方法

    js初学者经常遇到的循环绑定事件问题 js循环绑定事件 在编写JS代码的时候,我们经常会遇到要对一系列元素进行事件绑定的情况,然后就会理所当然的开一个for循环,对元素的事件进行赋值等操作,最后运行的 ...

  2. 原生JS javascript解除绑定事件 JS删除绑定事件

    原生JS javascript解除绑定事件 JS删除绑定事件 一.直接删除法 1.适用于直接绑定的事件,如: <h1 id="h1" onclick="_click ...

  3. 如何更换安装鸿蒙系统,华为鸿蒙系统2.0如何进行安装?鸿蒙系统2.0安装方法详细介绍...

    华为鸿蒙系统2.0如何进行安装?现在已经可以安装鸿蒙系统2.0,但是你不清楚安装,下面就让浏览器小编为大家带来,鸿蒙系统2.0安装方法详细介绍. 部分更新了华为鸿蒙OS用户表示,安卓和鸿蒙的应用软件都 ...

  4. 鸿蒙系统可以安装的浏览器,华为鸿蒙系统2.0如何进行安装?鸿蒙系统2.0安装方法详细介绍...

    华为鸿蒙系统2.0如何进行安装?现在已经可以安装鸿蒙系统2.0,但是你不清楚安装,下面就让浏览器小编为大家带来,鸿蒙系统2.0安装方法详细介绍. 部分更新了华为鸿蒙OS用户表示,安卓和鸿蒙的应用软件都 ...

  5. php ucenter home登录,UCenter Home 2.0 安装方法详细介绍

    本教程为大家介绍 UCenter Home 2.0 的安装方法(以虚拟主机为例).在安装 UCenter Home 2.0 之前,请确认在服务器上已经安装过 UCenter ,UCenter 的安装方 ...

  6. 怎么使用小爱同学音响_小爱音箱mini怎么样如何使用 小爱音箱mini使用方法详细介绍...

    小爱音箱mini怎么样如何使用?相信小伙伴们一定很好奇,小米音响mini首发仅需99元,下面小编为大家带来了小爱音箱mini使用方法详细介绍,感兴趣的小伙伴赶紧跟着小编一起来看看吧. 小爱音箱mini ...

  7. python定义数组的方法_Python数组定义方法详细介绍

    本文实例讲述了Python数组定义方法.分享给大家供大家参考,具体如下: Python中没有数组的数据结构,但列表很像数组,如: a=[0,1,2] 这时:a[0]=0, a[1]=1, a[[2]= ...

  8. CreateFile函数使用方法详细介绍

    CreateFile The CreateFile function creates or opens the following objects and returns a handle that ...

  9. 经典IDEF系统分析方法详细介绍

    经典IDEF系统分析方法详细介绍 (转载) IDEF是ICAM DEFinition method 的缩写,是美国空军在70年代末80年代初ICAM(Integrated Computer Aided ...

最新文章

  1. centos7 pam mysql.so,Centos7下搭建FTP服务器(博主亲测不坑)
  2. linux启动和关闭
  3. 鸟哥的Linux私房菜(基础篇)- 第二十章、启动流程、模块管理与 Loader
  4. 下面可提供安全电子邮件服务的是()【最全!最详细解析!!】
  5. 用Qt写软件系列六:博客园客户端的设计与实现(1)
  6. FLV封装格式的分析
  7. Docker部署SpringBoot的两种方法,后一种一键部署超好用!
  8. 【Faster RCNN detectron2】detectron2实现Faster RCNN目标检测
  9. macosx下apache的默认用户为daemon
  10. 大前端时代安全性如何做
  11. 如何使用组托管服务帐户(GMSA)保护Reporting Services
  12. 在VS2010 Choose Toolbox Item Dialog 中显示自定义控件
  13. 使用Box2D制作AS3游戏——2.1a版本——Hello World Box2D .
  14. 几个支持SCORM的免费平台
  15. 风力摆控制系统2015年全国大学生电子设计竞赛B题
  16. cad2006计算机丢失,win10系统无法打开CAD2006提示“计算机中丢失ac1st16.dll”的解决方法...
  17. Pytorch系列(六):猫狗大战3-MobileNet_V1V2
  18. 登陆163邮箱 验证邮箱帐号密码是否正确
  19. 鸿蒙系统功能,华为HarmonyOS2.0系统功能都有哪些呢-华为鸿蒙系统HarmonyOS2.0功能介绍[图文]_咖绿茵手游站...
  20. 深入浅出移动直播技术之帧率、码率和分辨率

热门文章

  1. python3的pip3安装【转载】
  2. 明锐更换变速箱油方法
  3. 引气管理计算机失效,B-2337飞机PRV故障排除的分析
  4. 有哪些适合户外使用的耳机值得推荐?户外运动耳机盘点
  5. 实现搜索引擎搜索关键字与文章一致时,字体变红的效果
  6. progressdialog进度框_使用ProgressDialog创建进度对话框
  7. 三国志战略版:官渡之战_新阵容解读_刘备
  8. 【Python】爬取**查公司电话以及地址信息
  9. 防水蓝牙耳机什么牌子好?超长续航防水蓝牙耳机
  10. SDL2的学习之路<一> 创建基本窗口