从 jQuery 1.7 开始,您可能知道也可能不知道,整个事件系统已从头开始重写。代码库要快得多,并且使用新的 .on() 方法可以非常统一地连接事件处理程序。
曾经能够访问内部事件数据并调查在任何给定元素上注册了哪些事件,但最近基于以下情况隐藏了此内部信息...
似乎“私有(private)”数据总是存储在 .data(jQuery.expando) 中 - 对于“对象”,删除对象也应该删除其缓存,这在一定程度上是有道理的。
然而,在节点领域,我认为我们应该将这些“私有(private)”成员存储在单独的(私有(private))缓存中,这样它们就不会污染 $.fn.data() 返回的对象”
虽然我同意上述隐藏内部数据的更改,但我发现访问此信息有助于调试和单元测试。
在 jQuery 1.7 中获取内部 jquery 事件对象的新方法是什么?
最佳答案
在 jQuery 1.7 中,事件存储在可通过内部 $._data()
方法访问的备用位置(但请注意,此方法被记录为仅供内部使用 在源代码中,因此使用它需要您自担风险,并做好在库的 future 版本中更改或消失的准备。
要获取元素上注册的事件,您可以对该元素调用 $._data()
并检查返回对象的 events
属性。例如:
$("#yourElement").click(function() {
// ...
});
console.log($._data($("#yourElement")[0]).events);
关于javascript - 如何访问 jquery 内部数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9975552/