javascript中的事件

事件

事件是在编程时系统内发生的事情或动作

  • 单击
  • 双击
  • 鼠标放置
  • 表单内容发生变化
  • 拖拽
  • 页面滚动
  • 触发/失去焦点
  • 键盘按下
  • 提交表单
  • …其他

DOM事件流

三个阶段

  • 事件捕获阶段
  • 处于目标阶段
  • 事件冒泡阶段
    在这里插入图片描述## 事件处理程序
  • 当事件发生时执行的函数
  • 一般有三种绑定方法
<div onclick="sayHello">点我</div>

$btn.onclick=function(e){
	console.log('点我')
}
$btn.addEventListener('click',function(e) {
	console.log('点我')
},true)

addEventListener

事件监听函数

target.addEventListener(type,listener,options)

  • type: 事件类型
  • listener: 事件处理方法
  • options:这是一个对象;可选,默认全是false。{capture:是否捕获阶段监听,once:是否只监听一次,passive:是否忽略preventDefault}

target.addEventListener(type,listener,useCapture)

  • useCapture:可选,true表示在捕获阶段调用listener,false表示冒泡阶段处理

target.removeEventListener

  • target.removeEventListener(‘click’,handler)
    不能使用匿名函数
  • target.removeEventListener(‘click’,handler,true)
    设置了冒泡还是捕获阶段就得填写true或false

冒泡与捕获

停止事件传播

  • e.stopPropagation()

在这里插入图片描述

在这里插入图片描述
使用这个函数后

在这里插入图片描述

阻止默认事件

很多情况下,浏览器会发生默认的时间:比如点击表单,代码会自动提交.点击a链接,a链接自动跳转.

e.preventDefault()

与passive选项的关系

  • 移动端滚动性能优化

事件代理

  • 事件绑定代理给父元素,由父元素根据事件来源统一处理
  • 适用于可能会新增子元素对场景
  • 事件代理实际上是事件冒泡的应用

e.target

真正点击的目标元素

e.path

点击元素时目标元素的路径,是一个数组
在这里插入图片描述

事件代理的思路

  • 将事件绑定在父元素上
  • 因为事件顺序默认是冒泡顺序,因此点击子元素时,父元素的时间包含子元素的信息
  • 判断是否点击了该子元素,并为其设置功能
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值