事件对象中target对象和currentTarget对象的区别
1、target在事件流的目标阶段; currentTarget在事件流的捕获、目标和冒泡阶段
2、event.currentTarget指向事件所绑定的元素;event.target指向事件发生时的元素
3、事件真正的发送者是 event.target(可变的(点击不同子元素结果不同));注册侦听器的是event.currentTarget(不会变)
4、Google浏览器,支持srcElement和target,这两个标签本质相同
Firefox只支持 target标签
注册事件侦听器
三种方式为DOM元素注册事件处理函数
EventTarget.addEventListener
element.attachEvent()(IE6-8)
HTML属性
DOM元素属性
DOM Event接口
属性:
event.bubbles(只读) 事件是否在DOM中冒泡
event.cancelable(只读) 事件是否可以取消
event.currentTarget(只读) 当前注册事件的对象引用(不变化)
即:代码书写时绑定事件的DOM元素,当将相同事件处理程序附加到多个元素时,可以区分被绑事件的元素
event.target(只读) 事件起源目标的引用(变化)
//IE 6~8 element.attachEvent()绑定事件监听器,e.srcElement等价于 e.target
var target = e.target || e.srcElement;
event.type(只读) 事件的类型(不区分大小写)
event.eventPhase 事件阶段常量
0(NONE 没有事件被处理)、1(CAPTURING_PHASE 捕获阶段)2、(AT_TARGET 目标阶段)3、(BUBBLING_PHASE冒泡阶段)
方法:
event.initEvent 给被创建的事件初始化某些值
event.preventDefault 取消事件(若该事件可取消)
若事件可取消,则取消该事件,而不停止事件的进一步传播。
event.stopPropagation 阻止捕获和冒泡阶段中 当前事件的进一步传播
mousedown--->mouseup--->click
keydown--->keyup--->keypress