【问题标题】:What's the reason for storing data with .data() instead of using plain variables?使用 .data() 而不是使用普通变量存储数据的原因是什么?
【发布时间】:2014-07-01 16:01:53
【问题描述】:

假设我必须记住某个元素的初始高度。 我看到的一种常见做法是在该元素上使用$.data 保存此值。

我不明白这样做的好处。为什么不简单地保留一个具有该值的简单变量,或者如果有多个元素则保留一个具有值的数组?使代码易于理解。

【问题讨论】:

  • 最有可能与节点关联。不过,我会留给比我更专业的人来完整地回答这个问题。
  • 如果你想把它和元素关联起来?
  • 与节点的关联,肯定加干净。如果您有 100 个这样的元素,那么它不干净地维护 100 个变量,以及将节点映射到这些变量的额外关联信息。

标签: javascript jquery jquery-data


【解决方案1】:

使用data()的主要原因是为了存储特定于某个元素的数据,以便以后可以访问,这里是一个例子

$('.elements').on('click', function() {
     $(this).data('value', this.value);
});

$('.elements').on('keyup', function() {
    $(this).val( $(this).data('value') );
});

请注意,事件处理程序可以匹配许多不同的元素,并且使用 data() 可以保持与每个元素相关联的数据,而无需为每个元素或复杂数组使用多个变量。

EXAMPLE

【讨论】:

    【解决方案2】:

    它允许重复使用该函数以将相同的效果应用于其他元素(无需处理闭包)。

    它允许使用 HTML 初始化值。

    它使开发人员工具更容易检查数据。

    【讨论】:

    • +1 表示“它允许使用 HTML 初始化值”
    【解决方案3】:

    基本上是因为您将信息保存在节点内,从而防止可能的变量名称冲突并且无需传递变量。关于节点的所有需要​​的信息,留在节点本身

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-22
      • 2016-08-31
      • 2011-12-26
      • 1970-01-01
      • 2021-09-29
      • 2014-01-21
      • 2011-04-17
      相关资源
      最近更新 更多