如何解决事件委托检查 e.target 是否存在——为什么?
我遇到了这段代码:
if(e.target && e.target.nodeName == "LI") { // do stuff }
在这种情况下
document.getElementById("parent-list").addEventListener("click",function(e) {
if(e.target && e.target.nodeName == "LI") {
console.log("List item ",e.target.id.replace("post-","")," was clicked!");
}
});
我明白第二次检查,即nodeName是否为“LI”,但我不明白第一次检查的原因。为什么要检查 e.target 是否为真/存在。如果代码达到了那个点,难道不能保证它存在吗?为了触发点击侦听器,必须发生点击,这意味着 e.target 必须存在。我错过了什么?这个检查有什么意义?
解决方法
由于 Event 接口的 target 属性是对分发事件的对象的引用,因此不一定需要进行第一次检查。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。