![](/img/trans.png)
[英]How can it be that I can access and use event.currentTarget but when I print the event then currentTarget is null?
[英]why html event.currentTarget is null when you log
function hide (e){
console.log(e);//but in the Console click on triangle the currentTarget is null,why?
console.log(e.currentTarget) //is an object.
}
var ps = document.getElementsByTagName('p');
for(var i = 0; i < ps.length; i++){
ps[i].addEventListener('click', hide, false);
}
我认为currentTarget在html中没有“可用”2年(我曾经是as3开发人员)。现在我试着找出它为什么不“可用”,但是当我找到这个引用MDN Event.target时 , e.currentTarget显示了一个对象,让我很困惑。现在对我来说当前目标'可用',它让我的生活变得更轻松,但我只是想知道为什么控制台骗我
问题是标签是动态生成的 ,因此您必须提升范围,并将事件侦听器附加到非动态生成的元素 。
这是jQuery的一个例子,将监听器附加到document
:
$(document).on("click", "p", function(e) { console.log(e.currentTarget); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <p> One </p> <p> Two </p> <p> Three </p>
由于document
始终可用,因此它始终会附加侦听器。 然后,在应用点击事件之前,它只是“等待”创建动态元素。
我也在这里创造了一个小提琴。
希望这可以帮助! :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.