事件对象

element.onclick = function(e){console.log(e);
}
// event就是一个事件对象,写到我们侦听函数的小括号里面,可以当形参来看
// 事件对象只有有了事件才会存在,它是系统给我们自动创建的,不需要我们传递参数
//  事件对象是我们事件的一系列相关数据的集合跟时间相关的,比如鼠标点击里面就包含了鼠标的相关信息,鼠标坐标啊等等。
// 事件对象我们也可以自己命名,比如event,e

target与this

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><ul><li>abc</li><li>abc</li><li>abc</li></ul>
</body>
<script>var ul = document.querySelector('ul');// e.target返回的是触发时间的对象(元素),this则返回的是绑定事件的对象// e.target点击了哪个元素,就返回哪个元素ul.addEventListener('click',function(e){console.log(e.target);//点击谁返回谁console.log(this);//ul})
</script>
</html>

阻止默认行为

element.addEventListener('click',function(e){e.preventDefault();// 比如阻止a元素的默认跳转事件
})

阻止冒泡

element.addEventListener('click',function(e){e.stopPropagation();e.cancelBubble = true;
})

事件委托

事件委托原理:不是每个子节点都单独设置监听器,而是事件监听器设置在其父节点上,然后利用冒泡原理影响设置每个子节点

作用:只操作了一次DOM,提高了程序的性能。

案例

给ul注册点击事件,然后利用事件对象的target来找到当前点击的li,因为点击li,事件会冒泡给ul,因为ul有注册事件,就会触发事件监听器

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><ul><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li></ul>
</body>
<script>var ul = document.querySelector('ul');ul.addEventListener('click',function(e){for(var i = 0;i < ul.children.length;i++){ul.children[i].style.backgroundColor = '';}e.target.style.backgroundColor = 'pink';})
</script>
</html>

事件对象以及事件委托(pink老师笔记)相关推荐

  1. web api、获取DOM元素的方式、事件理解、click事件在移动端300ms延时、事件对象、事件委托、常见事件类型

    web api: API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力 ...

  2. 事件对象,事件流(事件冒泡和事件捕获)、事件委托、L0和L2注册等相关概念及用法

    事件对象 1. 事件对象是什么? 这个对象包含事件触发时的相关信息.如:鼠标点击事件中,事件对象就存了鼠标点击时的位置信息等. 2. 事件对象在哪里? 在事件绑定的回调函数的第一个参数就是事件对象,一 ...

  3. 第三天:js中的事件提高篇(事件流,事件对象,事件委托深层次理解)

    目录 前言 一,基础部分 1.1 js监听并绑定事件 1.2 删除事件绑定 二,事件流 2.1 事件流是什么 2.2 事件流模型 2.3 捕获与冒泡具体示例 2.3.1 addEventListene ...

  4. JS7day(事件对象,事件流,事件捕获和冒泡,阻止事件流动,事件委托,学生信息表案例)

    文章目录 事件对象 获取事件对象 部分常用属性 事件流 事件捕获概念: 事件冒泡概念: 阻止事件流动: 相同的鼠标经过事件: 两种(监听事件)注册事件的区别: 传统on注册(L0) 事件监听注册(L2 ...

  5. 事件注册方法、阻止默认事件、事件对象、事件冒泡:事件委托、事件捕获、重置表单

    dom两种注册事件语法 1.点语法注册事件: 事件源.事件类型 = 事件处理函数 特点:不能注册'同名事件', 否则会覆盖 2.addEventListener 事件源.addEventListene ...

  6. echarts基本使用参考pink老师笔记

    echarts 可视化面板介绍 Echarts介绍 Echarts使用步骤 Echarts-基础配置 color:调色盘颜色列表 title:标题组件 tooltip:提示框组件 触发类型 legen ...

  7. JS的事件对象和事件冒泡

    2019独角兽企业重金招聘Python工程师标准>>> 1.事件对象 js的事件对象中保存了当前被触发事件的一些相关的属性信息,如事件源.事件发生时的鼠标位置.事件按键等. 事件对象 ...

  8. javascript --- 事件对象和事件类型

    // 无论程序使用"DOM0级"规范还是"DOM2级"规范,都会在局部产生一个event对象, // 将其打印出来研究: <div id="di ...

  9. 2020.11.18第十三章 事件(事件处理程序;事件对象;事件类型:UI事件;焦点事件;鼠标与键盘事件 变动事件 模拟事件)

    事件处理程序 html事件处理程序(直接在html中书写script) <!-- //#### 事件处理程序 //html时间程序 可以直接在HTML文件中写,而且还可以引用其他地方的方法和函数 ...

最新文章

  1. 使用isql连接Sybase ASE数据库的常见错误及处理方式
  2. a,b为2个整型变量,在不引入第三个变量的前提下写一个算法实现 a与b的值互换...
  3. 趋势解读:John D′Ambrosia告诉你下一代以太网路在何方?
  4. exec和source命令的区别
  5. 基于Spring boot 2.1 使用redisson实现分布式锁
  6. WIF基本原理(2)基于声明的标识模型
  7. c#winform pictureBox使用url加载图片
  8. 从挂科学渣到史上学历最低诺奖得主,他用17年时间重新证明自己
  9. 区块链加密算法小探(一)
  10. ES2019 的新功能 flat()
  11. 大数据技术如何实现核心价值
  12. 优秀!3位95后硕士一作发表Nature!
  13. unity3d 任务系统设计 mmo
  14. 易优家:重新定义食品包装安全
  15. win32 mysql误删数据恢复_mysql误删数据恢复
  16. 实现手机扫描二维码页面登录,类似web微信-第三篇,手机客户端
  17. js 正则校验 长数字 电话号码 银行卡号
  18. 手写sqrt 牛顿迭代法
  19. zabbix使用pg_monz模板日常监控postgresql
  20. 李永乐复习全书概率论与数理统计 第七、八章 参数估计及假设检验

热门文章

  1. BlueTooth: 蓝牙协议栈的原理和结构
  2. iOS获取音频设备信息
  3. android之activety生命周期
  4. windows系统bat批处理 arp扫描一个网段的IP地址
  5. python小爬虫—获取学校教务处成绩
  6. 外键查询_详解MySQL数据库删除所有表的外键约束、禁用外键约束相关脚本
  7. JAVA集合Set之HashSet详解_Java基础———集合之HashSet详解
  8. java sdk他edk de区别_最低SDK版本/目标SDK版本与编译SDK版本之间有什么区别?
  9. 增强 for 循环 和 普通for 循环的 区别总结
  10. repeat mysql翻译_MySQL数据库中系统函数repeat有哪些功能呢?