将变量分配给 $(this).data("whatever") 还是不分配?

Assign variable to $(this).data("whatever") or no?

在使用 jquery data() 读取值时是否付出了 (performance/cpu) 的努力?

所以...我有几个links/buttons,类似下面的

<a href='#' class='ui-btn' data-counter='1234'>test</a>

当link被点击时,一个事件被执行。在事件处理过程中,我不止一次需要计数器的值。我应该每次都从源中读取值(因此,使用 $(this).data("counter") )还是应该改为

var counter=$(this).data("counter");

到处都是引用计数器?

这完全取决于您,但每次调用 $(this).data("counter") 都需要工作。它可能 无关紧要 ,但将其抓取到本地将更短以输入长 运行 并保存奇数微秒。


请注意,除非您真的需要 data, you might want to use attr 的功能,否则:+$(this).attr("data-counter")(开头的 + 从字符串转换为数字, data 用于你用全数字字符串)。 data 不是 data-* 属性的访问器,它是 jQuery 该元素的数据缓存的访问器。第一次在元素上调用它时,它会创建缓存并从元素上的所有 data-* 属性填充它,然后保留它们当时的副本。 (并且将其用作 setter 不会更改属性,在元素上使用 data 后更改属性也不会更改 data的值的副本。)attr 只是属性的访问器。

如果将值存储到变量中:

var counter=$(this).data("counter");

然后:

counter++;
...
counter++;

然后最后再次更新你的数据属性:

$(this).data("counter", counter);

可能会更快。