1.鼠标事件/键盘事件
2.绑定事件/解绑事件(常用)
3.事件对象定义
4.事件冒泡
——————————————————————
事件对象方法:应用在事件处理函数?
事件冒泡定义
绑定事件/解绑事件(不常用)
鼠标事件/键盘事件
鼠标事件 | 代码 | 作用 |
---|---|---|
下方代码皆可读写 | 获取的dom元素位置.click( ) | 写在监视器内(“脚本语言”) |
点击 | onclick | |
鼠标置入时 | onmouseover | |
鼠标移除时 | onmouseout | |
获取焦点 | onfocus | |
失去焦点 | onblur | |
鼠标移动 | onmousemove | 做页面特效的好帮手 |
鼠标弹起 | onmouseup | |
鼠标按下 | onmousedown | |
鼠标双击 | ondblclick | |
鼠标右键 | contextmenu | 禁止鼠标右键 |
鼠标选中 | selectstart | 禁止鼠标选中 |
鼠标经过时1 | mouseover | 嵌套关系,鼠标经过父盒子时触发,鼠标经过子盒子再次触发 |
鼠标经过时2 | mouseenter | 嵌套关系,鼠标经过自身盒子才会触发 |
鼠标离开时 | mouseleave | 嵌套关系,鼠标离开自身盒子才会触发 |
键盘事件 | 代码 | 触发 | 大小写 | 频率 | 反应 |
---|---|---|---|---|---|
键盘松开时触发 | onkeyup | 键盘松开时触发 | 不区分大小写 | 用得多 | 文字落到文本框之后触发 |
键盘按下时触发 | onkeydown | 当键盘按下时触发 (一直) | 不区分大小写 | 用得少 | 文字还没落到文本框就被触发 |
键盘按下时触发(不识别功能键,shift,ctrl) | onkeypress | 当键盘按下时触发(一直) | 区分大小写 | 用得少 | 文字还没落到文本框就被触发 |
绑定事件/解绑事件(常用)
绑定事件:获取的dom元素.addEventListener(参数1,参数2,参数3)
解绑事件:获取的dom元素.removeEventListener(参数1,参数2,参数3 );
(参数1)没有on的事件
(参数2)事件处理函数(监听器):需解绑时需要用命名函数
(参数3)false:冒泡阶段;true:捕获阶段
解绑事件一般写到绑定事件的命名函数内就可以(函数不能匿名)
事件对象定义
定义:
- 事件对象:在事件处理函数中添加行参//event/evt/e
- 不需要传递实参
- 触发事件时(如点击),事件对象被触发
- 具有触发事件的属性和方法(属性信息/鼠标信息/键盘信息)
事件冒泡
1.事件冒泡(事件委托,事件代理,事件委派)优势
(1)防止给每个li注册监听器
(2)将监听器设置在父节点上
(3)点击子节点因事件冒泡找父亲事件
(4)在父节点在用用target,找回子节点(子节点不需要设置,只有target关系)
2.阻止事件冒泡
(1)e.stopPropagation( 空的 );(让谁阻止冒泡写到谁的监视器内)
事件对象方法
1.事件对象属性方法
代码 | 说明 |
---|---|
this | 返回:绑定事件对象(嵌套时点击子元素,返回绑定的父元素) |
e.target | 返回:触发事件对象(嵌套时点击子元素,返回触发的子元素) |
e.type | 返回事件类型,例如click) |
e.preventDefault(空 ) | 阻止默认事件,例如不让a跳转,传统方式return false也可以 |
e.stopPropagation( 空 ) | 阻止冒泡排序 |
this用法 | this指向 | 其他 |
---|---|---|
window的方法 | window | 例如:alert( ) |
普通函数中 | window | 调用者为window |
全局作用域中 | window | 调用者为window |
构造函数中 | 调用(创建对象) | |
对象中 | 对象名 | 例如:方法函数内的this |
DOM方式注册事件 | 获取的dom元素 |
2.事件对象鼠标方法
代码 | 说明 |
---|---|
e.clientX | 返回鼠标相对浏览器可视窗口X坐标 |
e.clientY | 返回鼠标相对浏览器可视窗口Y坐标 |
e.pageX | 返回鼠标相对文档页面X坐标 |
e.pageY | 返回鼠标相对文档页面Y坐标) |
e.screenX | 返回鼠标相对电脑屏幕X坐标 |
e.screenY | 返回鼠标相对电脑屏幕Y坐标 |
3.事件对象键盘方法
代码 | 说明 |
---|---|
e.keyCode=ASCII值 | 对照ASCII表,读写键盘按键 |
——————————————————————————————
事件冒泡定义:不考虑阻止事件捕获阶段
捕获阶段:点击注册事件后,从上往下触发
元素嵌套时,嵌套的外部元素先触发(全部), 内部元素后触发
冒泡阶段:点击注册事件后,从下往上触发
元素嵌套时, 内部元素先触发,嵌套的外部元素后触发(全部)
绑定事件/解绑事件(不常用)
绑定事件:获取元素.οnclick=function(传统方式,函数多了会覆盖)
解绑定事件:获取的dom元素.οnclick=null;(一般写在绑定事件函数内部)
默认冒泡阶段,没有捕获阶段
绑定事件:获取的dom元素.attachEvent(参数1,参数2);
获取的dom元素.detachEvent(“onclick”,命名函数);
(参数1)有on的事件
(参数2)事件处理函数(监听器):需解绑时需要用命名函数
默认冒泡阶段,没有捕获阶段
解绑事件一般写到绑定事件的命名函数内就可以(函数不能匿名)