如何访问jquery内部数据?

Unk*_*own 5 .net javascript asp.net jquery web-services

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

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

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

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

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

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

Fré*_*idi 4

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

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

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

console.log($._data($("#yourElement")[0]).events);
Run Code Online (Sandbox Code Playgroud)