"e.target"号召错了目标?

L.C*_*C.J 2 javascript jquery

我正在处理的组件依赖于<img>元素内部的<span>元素,当<span>通过JQuery检测到"click"事件时,该span的ID应记录到控制台.但由于某种原因,<img>正在记录的ID.

$(() => {
  	$('.star-span').click(e => {
  	  	console.log(e.target);
  	});
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<span class="star-span" id="1">
  	<img class="star-img" width="15%" src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/18/Five-pointed_star.svg/2000px-Five-pointed_star.svg.png" />
</span>
Run Code Online (Sandbox Code Playgroud)

有人在我的代码中看到任何明显的错误吗?

Cer*_*nce 6

行为与预期一致.按MDN,event.target

对调度事件的对象的引用.它与event.currentTarget在事件的冒泡或捕获阶段调用事件处理程序时不同.

点击的最里面的元素是img,所以它imgtarget事件的元素.

如果您想要对处理程序所在的元素进行引用,请e.currentTarget改用:

$('.star-span').click(e => {
  console.log(e.currentTarget);
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<span class="star-span" id="1">
  	<img class="star-img" width="15%" src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/18/Five-pointed_star.svg/2000px-Five-pointed_star.svg.png" />
</span>
Run Code Online (Sandbox Code Playgroud)