事件
Js与HTML之间的交互通过事件完成,事件,就是文档或浏览器窗口中发生的一些 特定的交互瞬间。事件类型有很多分类,例如:DOM事件类型,焦点事件,滚轮事件等等,说到这里就不得不说一下js的事件流
事件对象
无论是DOM0 还是 DOM2 在执行事件的时候,都会返回一个Event对象给我们。其中包含很多的属性,重点说下下面几个。
1.preventDefault,取消默认行为,例如a标签的跳转;相关的属性为cacelable,可以通过preventDefault取消默认行为,cacelable为true,否则为false
2.type 为出发该行为的事件是什么类型,例如click等
3.eventPhase 当前触发事件的阶段,是冒泡,捕获,还是目标阶段
4.stopPropagation 可以停止冒泡和捕获的继续传递
5.srcElement 和 target一样,事件的目标对象
自定义事件
除了平时使用的原生事件,有时候需要自定义事件。创建自定义事件的方法有两种,Event()
构造函数 和CustomEvent()
构造函数,还有个createEvent()已经废弃,但是仍然有浏览器支持,所以我们暂且不说,有兴趣的可以自己看看。
Event()
支持两个参数:
1.typeArg 事件名称
2.eventInitOption 事件初始化配置,配置内容包含三个字段
参数 | 类型 | 说明 |
---|---|---|
bubbles | 布尔 | 表示该事件是否冒泡 |
cancelable | 布尔 | 表示该事件能否被取消 |
composed | 布尔 | 指示事件是否会在影子DOM根节点之外触发侦听器 |
1 | // 创建事件 |
CustomEvent()
支持两个参数:
1.typeArg 事件名称
2.eventInitOption 事件初始化配置,配置内容包含事件部分字段,详情可以查看CustomEvent,额外还有一个detail字段可用于传递额外的参数
1 | // 创建事件 |
1 |
|
模拟事件总线
1 | <!DOCTYPE html> |