js中event的target和currentTarget

时间:2020-12-02 00:10:58

js 中的event是个很有用的对象,不同的浏览器,处理方式可能不一样。

我们现在只考虑标准的浏览器的情况

event是表示时间触发的产生的对象,以click事件为例。

由于冒泡的存在,event对象的字段取值,可能不一样。

例如,我们通常用的event.currentTarget,得到click点击的原始对象(如果外层的父元素有click事件,同样触发),因此我们得到的结果是外层的父对象,是因为冒泡的导致。

因此,如果打算得到原始对象,改为target字段。

以下是currentTarget与target的区别

1、target发生在事件流的目标阶段,而currentTarget发生在事件流的整个阶段(捕获、目标和冒泡阶段)
2、只有当目标流处于目标阶段的时候才相同
3、而当事件流处于捕获和冒泡阶段时,target指向被点击的对象,而currentTarget指向当前事件活动的对象,通常是事件的祖元素。