2011-02-13 42 views

回答

10

將「mouseover」事件處理程序綁定到<body>元素。在該處理程序中,檢查它捕獲的每個事件的「目標」屬性,並查看其「tagName」屬性是否爲「A」。如果是這樣,請致電處理程序。

「live」功能利用事件「bubbling」,這是瀏覽器檢查從目標元素到DOM根的處理程序的名稱,一次是父級。由於文檔中的每個<a>最終可以追溯到<body>,因此該根節點將獲取所有「鼠標懸停」事件,這些事件不會被取消冒泡的較低級別處理程序分流(通過「stopPropagation()」方法關於事件對象,或者我猜想的一些奇怪的瀏覽器特定方式)。

然而,並不是所有的事件都會冒泡。我正在四處尋找一個很好的參考...好的,在這裏,MDC page seems pretty good雖然有點老可能。

+0

我雖然'生活'是自動綁定事件到匹配相同選擇器的新元素。這是通過冒泡實現的嗎?我不這麼認爲。 – GolezTrol 2011-02-13 16:32:36

0

只要閱讀jQuery源代碼,看看它是如何做到的。這是開源的樂趣之一。你會學到很多...