在小流程中,e.target与e.currentTarget是十分关键的,特别是牵涉到网页fork时
currentTarget和target都是模块的许多特性值子集,由“data-特性名”表述的许多特性值
currentTarget:该事件促发的现阶段该事件(现阶段该事件,可能将是促发该事件的源模块,可能将是促发的该事件模块(即促发该事件源模块的子原素),这时点选子原素却是父原素,都是现阶段该事件,应用领域e.currentTargettarget:促发该事件的源模块(该事件注册登记/存取所处模块)
举个范例:
撰稿
接着点选父原素中的子原素时:
parentClick该事件中的currentTarget和target列印出,如下表所示:
parentClick:function(e){
console.log("点选父原素")
console.log("target",e.target)//target:{child:"子原素"}
console.log("currentTarget",e.currentTarget)//target:{parent:"父原素"}
}
即使存取在父原素上的parentClick该事件,是Thuir原素促发的,因此target的值是子原素所包涵的许多特性值子集;currentTarget则是存取该事件的该模块(父原素)的特性值子集。
给子原素存取两个该事件:childClick,列印出的currentTarget和target是那样的。
撰稿
接着点选子原素该事件:
childClick:function(e){
console.log("点选父原素")
console.log("target",e.target)//target:{child:"子原素"}
console.log("currentTarget",e.currentTarget)//target:{child:"子原素"}
}
扩展
结合this来看:this === e.currentTarget 总是为truethis === e.target 有可能将不是true