2011-03-23 61 views
2

所以我前幾天在GMail周圍兜了一圈,碰到了一些有趣的行爲......像「onclick」和「onmouseover」等標準DOM事件的替代品?

我在我的收件箱裏,決定點擊一條消息。當時有Firebug打開,我決定快速瀏覽一下消息鏈接,只是因爲我很好奇。

我注意到,GMail並沒有使用DOM級別0或DOM級別2事件進行此操作......這意味着DOM元素上沒有「onclick」屬性,也沒有通過「addEventListener」訂閱任何事件。然後

我的問題是:

什麼替代戰略在那裏做事喜歡「點擊」和「的onmouseover」的標準DOM事件API?

+0

該事件被稱爲「點擊」。 「onclick」是用於存儲點擊處理程序(函數)的屬性。 – 2011-03-23 20:36:31

+0

如果一個事件監聽器被附加到一個DOM元素上,你怎麼能在Firebug中看到? – 2011-03-23 20:39:34

回答

2

據我所知,沒有。處理程序可能位於父元素上,並且在那裏捕獲事件,這就是爲什麼您沒有在元素本身上看到處理程序的原因。

+0

看起來可能是這種情況......有一個外部div,點擊事件鏈上面......這可能會捕獲所有內容並根據元素的某些部分委託給其他方法(例如ID或一些其他財產)。儘管因爲一切都被縮小了,但很難說。我不知道你可以訪問從事件對象中點擊的「內部」元素......非常酷的東西! – Polaris878 2011-03-23 20:55:05

+2

你可能想看看這個網頁:http://www.quirksmode.org/js/events_order.html這對我來說是非常有幫助的。另外,quriksmode是一個很棒的網站。 – takteek 2011-03-23 20:59:53

+2

@Polaris事件對象的'target'屬性指向發起事件的DOM元素。因此,您可以將一個處理程序附加到'document'對象,並且仍然知道哪個元素被點擊。 – 2011-03-23 21:03:24