jQuery expando属性

23

我有一个关于jQuery expando属性的问题。基本上,我想以非常简单的方式了解:

  1. 整个过程是如何工作的,例如jQuery如何添加expando属性,
  2. 将其添加到任何元素的标准是什么,
  3. 使jQuery轻量级的确切原因是什么,
  4. jQuery缓存具体包含什么?
1个回答

55

第三个问题似乎不合适,但对于其余部分:

  • jQuery.expando是一个字符串,基本上是'jQuery' + uniqueid(仅是独特的值)。

在1.4.4版本之前,uniqueid是当前时间戳

之后从1.5.1版本开始,uniqueid是version+Math.random(),其中用点替换了。要明确的是,"jQuery" + ( version + Math.random() ).replace( /\D/g, "" )

  • jQuery.cache是一个对象,用于存储数据值。

  • Element[ jQuery.expando ]是一个int值/键,是对象存储在jQuery.cache中的位置。

  • jQuery.cache[ Element[ jQuery.expando ] ]是该元素数据属性的对象。

请看这里以了解详细信息


为什么jQuery有时会设置这个expando属性,例如在Window上? - tonix

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接