获取发生鼠标单击的html元素?

Posted

技术标签:

【中文标题】获取发生鼠标单击的html元素?【英文标题】:Get html element in which a mouse click occurred? 【发布时间】:2011-07-08 02:05:46 【问题描述】:

javascript 中,我希望能够确定 html 页面中发生鼠标单击的元素。请注意,元素不会附加事件侦听器。

基本上:光标在页面某处,用户单击鼠标,捕获鼠标单击事件,获取发生单击的元素。这可能吗?

我想到的一种方法是获取点击事件的 x,y 坐标,遍历 DOM 获取每个元素的位置,然后找到包含点击事件的最里面的元素。不过听起来有点啰嗦——所以想知道是否还有其他方法。

【问题讨论】:

【参考方案1】:

试试event.target。该页面上有一个示例说明如何使用它。

【讨论】:

也许最好链接到MDC's documentation,因为这与jQuery无关,可能会导致错误的结论。 我已经链接到 jQuery 示例,因为 event.target 在 IE 中不起作用,你需要 event.srcElement 那里。【参考方案2】:

http://www.quirksmode.org 是一个非常不错的网站,它解释了很多关于事件的信息。

特别是针对您的问题:Event properties - Which HTML element is the target of the event?

在 Internet Explorer 中,您可以使用 event.srcElement[docs]event 对象中获取元素,在所有其他浏览器中使用 event.target[docs]

另请参阅我链接到的示例中的“Safari 错误”解决方法(尽管我不知道它是否仍然存在和/或在哪个版本的 Safari 中)。

【讨论】:

谢谢,完美的答案,很好的参考。 不幸的是,这篇文章中的链接现在已损坏。 @Alistair:这是一个临时问题:twitter.com/ppk/status/648419502728835072

以上是关于获取发生鼠标单击的html元素?的主要内容,如果未能解决你的问题,请参考以下文章

调整窗口大小时如何使用鼠标单击获取图像坐标?

无需在 Chrome 中单击鼠标右键即可检查元素

在 DevTools 的性能选项卡中分析鼠标单击

JS5(事件)

JS事件-让网页交互

用VBS控制鼠标(获取鼠标坐标鼠标移动鼠标单击鼠标双击鼠标右击)