4

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

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

4

3 回答 3

6

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

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

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

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

例子

于 2014-07-01T16:05:24.933 回答
4

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

它允许使用 HTML 初始化值。

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

于 2014-07-01T16:04:32.447 回答
0

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

于 2015-11-16T17:02:22.260 回答