繁体   English   中英

为什么html event.currentTarget在您登录时为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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM