如何访问jquery内部数据?

时间:2012-04-02 11:26:23

标签: javascript jquery asp.net .net web-services

从jQuery 1.7开始,您可能会或可能不知道整个事件系统是从头开始重写的。代码库要快得多,使用新的.on()方法,事件处理程序的连接有很多一致性。

曾经能够访问内部事件数据并研究在任何给定元素上注册的事件,但最近基于以下场景隐藏了此内部信息......

似乎“私有”数据总是存储在.data(jQuery.expando)上 - 对于“对象”,删除对象也应删除其缓存,这是有道理的。

在节点领域,我认为我们应该将这些“私有”成员存储在一个单独的(私有)缓存中,这样它们就不会污染$ .fn.data()返回的对象“

虽然我同意上述更改以隐藏内部数据,但我发现访问此信息有助于调试和单元测试。

在jQuery 1.7中获取内部jquery事件对象的新方法是什么?

1 个答案:

答案 0 :(得分:3)

在jQuery 1.7中,事件存储在可通过内部$._data()方法访问的备用位置(但请注意,此方法在源代码中记录为仅供内部使用,因此使用它需要您自担风险,并为未来版本的库中的更改或消失做好准备。)

要获取在元素上注册的事件,可以在该元素上调用$._data()并检查返回对象的events属性。例如:

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

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