DOM3(事件)

1.鼠标事件/键盘事件
2.绑定事件/解绑事件(常用)
3.事件对象定义
4.事件冒泡
——————————————————————
事件对象方法:应用在事件处理函数?
事件冒泡定义
绑定事件/解绑事件(不常用)

鼠标事件/键盘事件

鼠标事件代码作用
下方代码皆可读写获取的dom元素位置.click( )写在监视器内(“脚本语言”)
点击onclick
鼠标置入时onmouseover
鼠标移除时onmouseout
获取焦点onfocus
失去焦点onblur
鼠标移动onmousemove做页面特效的好帮手
鼠标弹起onmouseup
鼠标按下onmousedown
鼠标双击ondblclick
鼠标右键contextmenu禁止鼠标右键
鼠标选中selectstart禁止鼠标选中
鼠标经过时1mouseover嵌套关系,鼠标经过父盒子时触发,鼠标经过子盒子再次触发
鼠标经过时2mouseenter嵌套关系,鼠标经过自身盒子才会触发
鼠标离开时mouseleave嵌套关系,鼠标离开自身盒子才会触发
键盘事件代码触发大小写频率反应
键盘松开时触发onkeyup键盘松开时触发不区分大小写用得多文字落到文本框之后触发
键盘按下时触发onkeydown当键盘按下时触发 (一直)不区分大小写用得少文字还没落到文本框就被触发
键盘按下时触发(不识别功能键,shift,ctrl)onkeypress当键盘按下时触发(一直)区分大小写用得少文字还没落到文本框就被触发

绑定事件/解绑事件(常用)

绑定事件:获取的dom元素.addEventListener(参数1,参数2,参数3)
解绑事件:获取的dom元素.removeEventListener(参数1,参数2,参数3 );
(参数1)没有on的事件
(参数2)事件处理函数(监听器):需解绑时需要用命名函数
(参数3)false:冒泡阶段;true:捕获阶段
解绑事件一般写到绑定事件的命名函数内就可以(函数不能匿名)

事件对象定义

定义:

  1. 事件对象:在事件处理函数中添加行参//event/evt/e
  2. 不需要传递实参
  3. 触发事件时(如点击),事件对象被触发
  4. 具有触发事件的属性和方法(属性信息/鼠标信息/键盘信息)

事件冒泡

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)事件处理函数(监听器):需解绑时需要用命名函数
默认冒泡阶段,没有捕获阶段
解绑事件一般写到绑定事件的命名函数内就可以(函数不能匿名)


版权声明:本文为lzyPM原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。