gpt4 book ai didi

jQuery 属性自动添加到元素

转载 作者:行者123 更新时间:2023-12-03 22:08:59 28 4
gpt4 key购买 nike

第一次使用开发人员工具中内置的 IE8 后,我注意到 jQuery 向我的一些元素附加了一个属性: alt text http://thebe.jtan.com/~vince/stack/jquery.PNG

我以前从未注意到这一点。事实上,这并没有出现在 Firebug 中......我现在只是在 IE8 开发工具中第一次看到它。有谁知道 jQuery 使用它做什么,以及为什么它隐藏在 firebug 中?

最佳答案

The jQuery source非常容易阅读,您可以查看 data 函数在做什么。

总结一下:

  • jQuery 有一个名为“expando”的变量,即 'jQuery'+(+new Date)
  • jQuery 还有另一个名为 uuid 的变量,它以“1”开头
  • jQuery.cache 是一个空对象
  • 在 HTML 元素/对象上设置/获取任何“数据”将使用对象上的 expando 属性将引用存储到 jQuery.cache - - 有点像这样:

    // get the elements cache id, or create a new cache id:var id = elem[expando] || (elem[expando] = uuid++);// get the cache for the element, or create it:var data = jQuery.cache[id] || (jQuery.cache[id] = {});

  • 事件处理程序存储在此内部 data 对象的 eventshandle 属性中。

因此,在内部使用 .data() 分配的所有属性使用 HTML 上的“expando”属性将键存储到 jQuery 的内部数据缓存中。 jQuery 事件处理程序也存储在同一个缓存中。分配给 expando 的数值是一个递增计数器,引用它在 jQuery 缓存对象中的位置。

关于jQuery 属性自动添加到元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2760714/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com