2012-04-02 64 views
5

正如你可能會或可能不知道的那樣,整個事件系統都是從頭開始重寫的。代碼庫要快得多,而且新的.on()方法在佈線事件處理程序方面有很大的一致性。如何訪問jquery內部數據?

一種用於能夠訪問內部事件數據和哪些事件註冊任何給定的元素investiate,但最近這一內部信息是基於以下情形隱藏...

看來, 「私人」數據總是存儲在.data(jQuery.expando) - 對於刪除對象的「對象」也應該刪除它的緩存,這是有道理的。

然而,在節點的境界,我認爲我們應該將這些「私人」的成員存儲在單獨的(私人)高速緩存,使他們不污染對象由$ .fn.data()」

返回

儘管我同意上述更改來隱藏內部數據,但是我發現有權訪問這些信息對調試和單元測試有幫助。

在jQuery 1.7中獲取內部jQuery事件對象的新方法是什麼?

回答

3

在jQuery 1.7中,事件存儲在可通過內部訪問的備用位置方法(但請注意,此方法在源代碼中僅記錄爲,僅供內部使用,因此請自行承擔風險並準備在將來版本的庫中更改或消失)。

要獲取在元素上註冊的事件,您可以在該元素上調用$._data()並檢查返回對象的events屬性。例如:

$("#yourElement").click(function() { 
    // ... 
}); 

console.log($._data($("#yourElement")[0]).events);