定义
event事件对象 , 当一个事件发生的时候,和当前这个对象发生的这个事件有关的一些详细的信息都会被临时保存到一个指定地方-event对象,供我们在需要的调用。用来获取事件的详细信息:鼠标位置、键盘按键。
事件对象必须在一个事件调用的函数里面使用才有内容
事件函数:事件调用的函数,一个函数是不是事件函数,不在定义的决定,而是取决于这个调用的时候
兼容
ie/chrome : event是一个内置全局对象
标准下 : 事件对象是通过事件函数的第一个参数传入
Event对象的兼容:ev=ev||window.event
如果一个函数是被事件调用的那么,这个函数定义的第一个参数就是事件对象
属性介绍:
button:返回一个数字,表示哪个鼠标按键会按点击。0:左键 1:中间键 2:右键
buttons:返回一个数字,1:左键 2:右键 4 中间键 (当已有鼠标按键被按下,数字会相加)
isTrusted:返回一个布尔值,true代表用户操作触发,false表示事件由脚本生成。
bubbles:返回布尔值,指示事件是否是冒泡事件类型。
cancelable:返回布尔值,true表示事件可以被取消
cancelBubble:获取或设置一个布尔值,true阻止冒泡事件.已废弃
clientX:相对于浏览器水平距离
clientY:相对于浏览器垂直距离
screenX:相对于显示屏的水平距离
screenY:相对于显示屏的垂直距离
offsetX:相对于事件源的水平距离
offsetY:相对于事件源的水平距离
pageX:相对于网页的水平距离(包括滑动滚动条被卷起来的部分)
pageY:相对于网页的垂直距离
layerX:相对于offsetParent的水平距离(offsetParent:祖先定位元素,如果没有就是body。定位元素指的是元素的 CSS position 属性被设置为 relative、absolute 或 fixed 的元素。)
layerY:相对于offsetParent的垂直距离
X:event.x 是event.clientX 属性的别名.
Y:同clientY。
target:返回事件的目标节点(触发该事件的节点)
currentTarget:注册事件时所指向的元素
relatedTarget:是鼠标事件的次要目标(如果存在)
(控制台打印currentTarget能打印相关对象,但是打印event属性,却显示null,这是因为currentTarget 只能用于事件正在处理过程中,当回调结束,会被重新赋值。)
defaultPrevented:返回一个布尔值,表示事件是否调用preventDefault()方法。
detail:返回数字,点击的次数
eventPhase:返回一个数字,表示事件流当前处于哪一个阶段。0:NONE没有事件正在被处理 1:CAPTURING_PHASE捕获阶段. 2:AT_TARGET目标节点自身 3:BUBBLING_PHASE起泡阶段
movementX:返回一个数字,当前事件和上一个mousemove事件之间鼠标在水平方向上的移动值
movementY:当前事件和上一个mousemove事件之间鼠标在垂直方向上的移动值
returnValue:设置或获取事件的返回值,非标准已废弃
timeStamp:返回事件发生时的时间戳.
type:返回事件对象的事件类型
which:返回指定事件上哪个键盘键或鼠标按钮被按下。
altKey,ctrlKey,shiftKey,metaKey:表示alt,ctrl,shift,meta键是否被按下。
2.事件冒泡
事件冒泡 : 当一个元素接收到事件的时候,会把他接收到的所有传播给他的父级,一直到顶层window.事件冒泡机制
–取消冒泡:ev.cancelBubble=true
事件捕获与事件冒泡相反。
3.事件绑定
ie:obj.attachEvent(事件名称,事件函数);
1)没有捕获
2)事件名称有on
3)事件函数执行的顺序:标准ie-》正序 非标准ie-》倒序
4)this指向window
标准:obj.addEventListener(事件名称,事件函数,是否捕获);
1)有捕获
2)事件名称没有on
3)事件执行的顺序是正序
4)this触发该事件的对象
是否捕获 : 默认是false false:冒泡 true:捕获
是鼠标事件的次要目标(如果存在)