为什么我看不到 onclick 属性?

Why I can't see onclick property?

当我探索 Whosebug 的代码时,我得到:
我试图获得 onclick 事件处理程序。有报道:

> [=11=].onclick
< null
> [=11=].parentElement.onclick
< null

但是 [=13=].click() 给了我一些结果(答案被赞成)。 Whosebug 开发人员如何隐藏它以及如何在纯 JS 中手工制作它?

虽然 .onclick 属性 是向元素添加点击事件侦听器的一种方法,但这不是唯一的方法。另一种方法是通过 .addEventListener()。当通过 .addEventListener() 将事件侦听器添加到元素时,onclick attribute/property 不会更新到事件处理函数。 .onclick 属性 仅在您使用 onclick="" 属性或代码已设置 属性 elem.onclick = function() {...} 时才在元素上设置,而现在不经常。

Chrome 确实为您提供了一种在不同元素上查找事件处理程序的方法。当你在你的开发者工具中时,你可以 select 你感兴趣的元素,点击 right-hand 窗格中的“事件监听器”,找到你感兴趣的事件,在这种情况下那是“点击”事件,然后寻找您的元素:

您的元素恰好有与之关联的事件,但情况可能并非总是如此。正如对您的问题的评论所指出的那样,有时您可以 运行 遇到特定元素上没有单击事件处理程序的情况,而是将其添加到该元素的父元素中。在这种情况下,当您单击您的元素时,事件通过 DOM 传播/“冒泡”,最终通过单击事件侦听器到达您的父元素。然后父级的事件处理程序可以看到最初单击的元素是什么,然后可以根据该元素执行一些操作。这被称为事件委托,这也是为什么即使在开发工具中查找时您也可能无法始终找到与您的元素相关联的事件的原因之一。