将变量分配给 $(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);
可能会更快。
在使用 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);
可能会更快。