【问题标题】:how to access jquery internal data?如何访问jquery内部数据?
【发布时间】:2012-04-16 01:28:43
【问题描述】:

您可能知道也可能不知道,从 jQuery 1.7 开始,整个事件系统都从头开始重写。代码库要快得多,并且使用新的 .on() 方法可以统一连接事件处理程序。

过去可以访问内部事件数据并调查在任何给定元素上注册了哪些事件,但最近根据以下情况隐藏了此内部信息...

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    $("#yourElement").click(function() {
        // ...
    });
    
    console.log($._data($("#yourElement")[0]).events);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-08
      • 1970-01-01
      相关资源
      最近更新 更多