js学习(三)

DOM和事件对象

  • 事件冒泡:事件由目标元素逐渐向上传递到document
  • 事件捕获:事件有document逐渐向下传递逐渐追溯到目标元素

Event事件对象的通用属性

名称 说明 返回值
type 事件名称 字符串(如mouseover)
target 事件指向的目标元素 HTMLElement
currentTarget 带有当前被触发事件监听器的元素 HTMLElement
eventPhase 事件生命周期阶段 数值
bubbles 如果事件可以在文档中冒泡返回true,否则返回false boolean
cancelable 如果事件有可以撤销的默认行为返回true,否则返回false boolean
timeStamp 事件创建的时间,时间不可用就返回0 字符串
stopPropagation() 在当前事件监听器触发后,阻止其在元素中的流动,包括冒泡和捕获 void
stopImmediatePropagation() 立即终止事件在在元素中的流动,当前元素上未被触发的事件监听器会被忽略 void
preventDefault() 阻止浏览器执行与事件关联的默认操作 void
defaultPrevented 如果调用了preventDefault()返回true boolean
eventPhase值
名称 说明
Event.CAPTURING_PHASE 捕获阶段
Event.AT_TARGET 目标阶段
Event.BUBBLING_PHASE 冒泡阶段

Document对象事件

名称 说明
readystatechange 在readystate属性发生变化时触发

window事件对象

名称 说明
onabort 在文档或者资源加载过程被终止时触发
onbeforeprint 在用户调用window.print()方法,但尚未给用户提供打印时触发
onafterprint 在用户完成打印之后触发
onerror 在文档或者资源加载发生错误时触发
onhashchange 在锚部分发生变化时触发
onload 在文档或者资源加载完成时触发
onpopstate 触发后提供一个关联浏览器的状态对象
onresize 在窗口缩放时触发
onunload 在文档从或者浏览器中卸载时触发

鼠标事件

名称 说明
click 点击鼠标并释放鼠标键时触发
dblclick 在两次点击并释放鼠标键时触发
mousedown 在鼠标左键按下时触发
mouseenter 在光标移入元素或者其后代元素区域时触发
mouseleave 在光标移出元素及所有后代元素区域时触发
mousemove 在光标在元素上移动时触发
mouseout 指针移出元素,或者移到它的子元素上
mouserover 指针移到有事件监听的元素或者它的子元素内
mouseup 释放鼠标时触发
事件特有属性
名称 说明 返回值
button 点击的键,0左(主)键,1中键,2右(次)键 数值
altkey 是否按下alt/option键 boolean
clientX 相对于目标元素的x轴坐标 number
clientY 相对于目标元素的y轴坐标 number
screenX 相对于窗口的x轴坐标 number
screenY 相对于窗口的y轴坐标 number
shiftkey 是否按下shift键 boolean
ctrlkey 是否按下ctrl键 boolean

键盘焦点事件

名称 说明
blur 失去焦点
focus 获得焦点
focusin 即将获得焦点
focusout 即将失去焦点

键盘事件

名称 说明
keydown 按键被按下时
keypress 按键被按下并被释放时
keyup 按键被释放时
事件特有属性
名称 说明 返回值
char 按键代表的字符 字符串
key 所按的键 字符串
altkey 是否按下alt/option键 boolean
shiftkey 是否按下shift键 boolean
ctrlkey 是否按下ctrl键 boolean
repeat 该建是否一直处于被按下的状态 boolean

事件参考