2012-04-02 63 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);