在javascript中我希望能夠確定在其中單擊鼠標時HTML頁面的元素。請注意,這些元素不會附加事件偵聽器。獲取發生鼠標點擊的html元素?
基本上是:光標停在某個頁面,用戶點擊鼠標,捕獲鼠標點擊事件,得到發生掣子元件。這可能嗎?
我想到的一種方法是獲取click事件的x,y座標,迭代DOM獲取每個元素的位置,並找到包含click事件的最內層元素。聽起來有點冗長 - 所以想知道是否有另一種方式。
在javascript中我希望能夠確定在其中單擊鼠標時HTML頁面的元素。請注意,這些元素不會附加事件偵聽器。獲取發生鼠標點擊的html元素?
基本上是:光標停在某個頁面,用戶點擊鼠標,捕獲鼠標點擊事件,得到發生掣子元件。這可能嗎?
我想到的一種方法是獲取click事件的x,y座標,迭代DOM獲取每個元素的位置,並找到包含click事件的最內層元素。聽起來有點冗長 - 所以想知道是否有另一種方式。
http://www.quirksmode.org是一個很好的網站,解釋了很多事件。
特別是對於你的問題:Event properties - Which HTML element is the target of the event?。
在Internet Explorer中,您可以從event
對象中獲取元素event.srcElement
[docs]以及其他所有瀏覽器中的元素event.target
[docs]。
另請參閱我鏈接到的示例中的「Safari bug」解決方法(儘管我不知道它是否仍然存在和/或Safari的哪個版本)。
嘗試event.target。該頁面上有一個示例顯示如何使用它。
也許最好鏈接到[MDC的文檔](https://developer.mozilla.org/en/DOM/event.target),因爲這與jQuery無關,可能導致錯誤結論。 – 2011-03-03 14:05:02
我已經聯繫到jQuery的例子,因爲event.target不能在IE瀏覽器,你需要event.srcElement那裏。 – Douglas 2011-03-03 14:20:00
謝謝,完美的答案,很好地引用。 – 2011-03-03 14:18:03
不幸的是,這篇文章中的鏈接已被打破。 – f1lt3r 2015-09-28 17:39:43
@Alistair:這是一個暫時性的問題:https://twitter.com/ppk/status/648419502728835072 – 2015-09-28 22:14:46