事件绑定与解绑

DOM0级事件(这类事件可以使用 return false来阻止事件往下执行,包含默认事件)

绑定:

  1. html内<input οnclick=''>
  2. js中el.οnclick=''

解绑: el.onclick = null

DOM2级事件(三个参数:事件名称,要分配的函数和处理函数是用于冒泡阶段(false)还是捕获阶段(true),默认为冒泡阶段false;这类事件可以使用 event.preventDefault()来阻止默认事件)

绑定:el.addEventListener('', func, bool)

解绑:el.removeEventListener( '', func, bool )

(如果使用addEventListener()将事件处理函数加入到捕获阶段,则必须在removeEventListener()中指明是捕获阶段,才能正确地将这个事件处理函数删除)

触发:el.dispatchEvent(event)

DOM3级事件,在DOM2级事件的基础上添加了更多的事件类型,全部类型如下:

UI事件,当用户与页面上的元素交互时触发,如:load、scroll

焦点事件,当元素获得或失去焦点时触发,如:blur、focus

鼠标事件,当用户通过鼠标在页面执行操作时触发如:dbclick、mouseup

滚轮事件,当使用鼠标滚轮或类似设备时触发,如:mousewheel

文本事件,当在文档中输入文本时触发,如:textInput

键盘事件,当用户通过键盘在页面上执行操作时触发,如:keydown、keypress

合成事件,当为IME(输入法编辑器)输入字符时触发,如:compositionstart

变动事件,当底层DOM结构发生变化时触发,如:DOMsubtreeModified

同时DOM3级事件也允许使用者自定义一些事件。

三个阶段(这里是冒泡型事件,同时也是浏览器默认的事件处理方式)

当鼠标点击所看到的的按钮时,其实发生了一系列的事件传递,可以想象一下,button实际上是被body“包裹”起来的,body是被html“包裹”起来的,html是被document“包裹”起来的,document是被window“包裹”起来的。所以,在你的鼠标点下去的时候,最先获得这个点击的是最外面的window,然后经过一系列传递才会传到最后的目标button,当传到button的时候,这个事件又会像水底的泡泡一样慢慢往外层穿出,直到window结束。

综上,一个事件的传递过程包含三个阶段,分别称为:

捕获阶段,目标阶段,冒泡阶段

目标指的就是包裹得最深的那个元素。

冒泡型事件只会发生在事件冒泡阶段,同理捕获型事件只会发生在事件捕获阶段

相关方法

event.preventDefault()

通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作),如果 Event 对象的 cancelable 属性是 fasle,那么就没有默认动作,或者不能阻止默认动作

event.stopPropagation()

既可阻止冒泡也可阻止捕获

event.stopImmediatePropagation()

既可阻止冒泡也可阻止捕获,同时还能阻止该元素的后续相同事件的发生(addEventListener添加多个事件监听,多个事件监听按顺序执行)

欢迎关注、点赞

js 事件(绑定、解绑、三个阶段、相关方法)相关推荐

  1. jquery事件绑定解绑机制源码分析

    引子 为什么Jquery能实现不传回调函数也能解绑事件?如下: $("p").on("click",function(){alert("The par ...

  2. JQuery事件绑定解绑方法小结

    常用的方法 绑定:bind().delegate().on() 解绑:unbind().undelegate().off() 此外还有live() 不过JQuery1.9及其以上版本删除了此方法 推荐 ...

  3. Vue-组件自定义事件(绑定和解绑)

    组件自定义事件(绑定) 像click,change这些都是js的内置事件,我们可以直接使用,本次我们学习自己根据需求打造全新的事件,但是js内置的是给html元素用的,本次的自定义事件是给组件用的 注 ...

  4. 11-jQuery的事件绑定和解绑

    [转]11-jQuery的事件绑定和解绑 1.绑定事件 语法: bind(type,data,fn) 描述:为每一个匹配元素的特定事件(像click)绑定一个事件处理器函数. 参数解释: type ( ...

  5. 原生JS事件绑定的三种方式

    JavaScript绑定事件的方法 要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定"事件处理函数".所谓事件处理函数,就是处理用户操作的函数,不同的 ...

  6. uniapp 账号登陆,账号绑定/解绑流程,躺坑

    第一次开发uniapp微信小程序,记录一下开发中遇到的流程以及坑 账号登陆 1.uni.login 获取code,在调用接口传入code获取uKey 绑定账号/解绑 1.uni.login获取code ...

  7. jQuery的事件绑定和解绑

    1.绑定事件 语法: bind(type,data,fn) 描述:为每一个匹配元素的特定事件(像click)绑定一个事件处理器函数. 参数解释: type (String) : 事件类型 data ( ...

  8. jQuery事件绑定和解绑

    jQuert事件 1.1. jQuery 事件注册 ​ jQuery 为我们提供了方便的事件注册机制,是开发人员抑郁操作优缺点如下: 优点: 操作简单,且不用担心事件覆盖等问题. 缺点: 普通的事件注 ...

  9. 03-jQuery事件绑定和解绑

    文章目录 一.绑定事件 二.解绑和触发 一.绑定事件 on().one().hover().常用事件函数 on(): 1.基础绑定事件 语法:元素集合.on('事件类型',事件处理函数) $('div ...

  10. linux 网卡绑定解绑,网卡绑定开机绑定,关机解绑

    Linux下实现双网卡负载均衡系统环境:RHEL5根据甘肃兰州实际情况的双网卡绑定方案, 方案思路:开机绑定,关机解绑 一.建立虚拟网络接口ifcfg-bond0文件[root@yangwenjun ...

最新文章

  1. 西安邮电大学计算机学院系主任,西安邮电大学计算机学院
  2. ICCV 2021审稿结果出炉,这里有一份Rebuttal写作指南
  3. 再造一个「谷歌大脑」?Samy Bengio加入苹果:将领导全新AI研究部门
  4. 进程管理ps,top
  5. html登录注册的正则,怎么用html5编写用户注册验证程序
  6. 游戏开发需要具备哪些技术_短视频 SDK 开发 (一) 开发一款短视频 SDK 需要具备哪些知识?...
  7. BZOJ4426 : [Nwerc2015]Better Productivity最大生产率
  8. Oracle 分页语句解释,oracle 分页语句
  9. 实时传输文件到服务器,如何将数据实时上传到云服务器
  10. Scrapy 爬虫框架入门案例详解
  11. 服务器上装的hadoop系统,在Ubuntu Server 18.04.1中安装Hadoop系统环境
  12. win7万能声卡驱动_IT天空出品的万能驱动 7 发布下载
  13. 2000坐标系与现行坐标系的关系及采用2000坐标系之后的一些变化
  14. linux学习杂碎:权限
  15. linux实验报告ALU,《linux内核分析》第一次课 实验作业
  16. 微信上看到的一篇文章,为什么保险公司一直在招人~
  17. Under the hood: MySQL Pool Scanner (MPS)
  18. 京东css3动画全屏海报_京东全屏CSS3动态海报抖动效果代码生成,海报上透明图片自动上下抖动带动感...
  19. 摸着石头过河的区块链游戏真是一门好生意吗?
  20. 无线通讯 - 5G芯片和5G模组区别

热门文章

  1. H5网页元素和全局属性
  2. 我的2022和2023(技术总结、开发工具简介和未来展望)
  3. 析构函数什么时候会调用?
  4. 数字电路中的基础电路结构
  5. Ubuntu-Base 18 文件系统 在iMX8平台上的移植
  6. CreateFileMapping 、MapViewOfFile、UnmapViewOfFile函数用法及示例
  7. Web3赋能创作者经济:NFT,DAO和永续收入
  8. 闪光网-彭亮《与风约定》
  9. chain.doFilter
  10. oracle 索引的创建和生效