Day27:P97-P107
学习笔记:
1.事件对象:
也是个对象,这个对象里有事件触发时的相关信息
2.事件对象在事件绑定的回调函数的第一个参数
3.事件对象的部分常用属性:
type:获取当前的事件类型
clientx/clientY:获取光标相对于浏览器可见窗口左上角的位置
offsetx/offsetY:获取光标相对于当前DOM元素左上角的位置
key:用户按下的键盘键的值。现在不提倡使用keyCode
4.环境对象:
指的是函数内部特殊的变量this,它代表着当前函数运行时所处的环境
作用:弄清楚this的指向,可以让我们代码更简洁
判断this 指向的粗略规则:【谁调用,this就是谁】
5.回调函数:
把函数当做另外一个函数的参数传递,这个函数就叫回调函数回调函数本质还是函数,只不过把它当成参数使用
使用匿名函数做为回调函数比较常见
6.事件捕获:
从DOM的根元素开始去执行对应的事件(从外到里)
事件捕获需要写对应代码才能看到效果
代码:DOM.addEventListener(事件类型,事件处理函数,是否使用捕获机制)
说明:addEventListener第三个参数传入true 代表是捕获阶段触发(很少使用);若传入false代表冒泡阶段触发,默认就是false
7.解绑事件:
addEventListener方式,必须使用:
removeEventListener(事件类型,事件处理函数,【获取捕获或者冒泡阶段】)
匿名函数无法被解绑
8.两种注册事件的区别:
传统on注册:
同一个对象,后面注册的事件会覆盖前面注册(同一个事件)直接使用null覆盖偶就可以实现事件的解绑
都是冒泡阶段执行的
事件监听注册:
语法: addEventListener(事件类型,事件处理函数,是否使用捕获)后面注册的事件不会覆盖前面注册的事件(同一个事件)
可以通过第三个参数去确定是在冒泡或者捕获阶段执行
必须使用removeEventListener(事件类型,事件处理函数,获取捕获或者冒泡阶段)匿名函数无法被解绑