この記事ではe.target
とe.currentTarget
の違いについて解説していきます。
e.target
e.target
は、イベントが発生した要素を指します。
次のサンプルを見てください。
See the Pen
target1 by shiakisudev (@shiakisu)
on CodePen.
「あいうえお」をクリックするとその背景色が赤くなります。
「かきくけこ」や「さしすせそ」も同様にクリックするとその背景色が赤くなります。
e.target
とすることで、クリックしたp要素が対象となり、そのp要素の背景色を変更しているのです。
HTML
<div id="ele">
<p>あいうえお</p>
<p>かきくけこ</p>
<p>さしすせそ</p>
</div>
CSS
.red{
background-color:red;
}
js
document.getElementById('ele').addEventListener('click',function(e){
e.target.classList.toggle('red');
})
e.currentTarget
e.currentTarget
は、イベントハンドラを登録している要素を指します。
次のサンプルを見てください。
See the Pen
currentTarget1 by shiakisudev (@shiakisu)
on CodePen.
「あいうえお」「かきくけこ」「さしすせそ」のいずれの要素をクリックすると全体の背景色が青くなります。
クリックイベントを登録しているのはこれらのp要素の親要素であるdiv要素なので、e.currentTarget
とすることで、div要素が対象となり、div要素の背景色を変更しているのです。
HTML
<div id="ele2">
<p>あいうえお</p>
<p id="ppp">かきくけこ</p>
<p>さしすせそ</p>
</div>
CSS
.skyblue{
background-color:skyblue;
}
js
document.getElementById('ele2').addEventListener('click',function(e){
e.currentTarget.classList.toggle('skyblue');
})
クリックイベントの場合、以下のようになります。
e.target |
e.currentTarget |
---|---|
クリックした要素が対象になる | クリックイベントを定義した要素が対象になる |
以上で記事の解説はお終い!
HTML、CSS、JavaScriptをもっと勉強したい方にはUdemyがオススメ!同僚に差をつけよう!
View Comments