【发布时间】:2013-06-27 13:59:44
【问题描述】:
如果我在 jquery 中使用$("#my_button").data('my-value', { onClick: function () { my_obj_function(); } });
在另一个函数中我这样做
my-value.onClick.call() 有效。
但如果我尝试在 html 中设置数据属性,它就不起作用。
我在 html 中做了这个
<a href='#' data-my-value='{"onClick":"function () { my_obj_function(); }"}'>Click me</a>
虽然calling my-value.onClick.call() 我得到
uncaught typeerror : object function() has no method call
我做错了什么?
【问题讨论】:
-
根据 HTML5 自定义属性规范,
<a ... data-my-value="..." ...>等同于$(...).data('myValue')。 -
@Phylogenesis - 并非如此。
.data()方法可以检索 html5data-属性,但不能设置它们。data-属性是字符串,但.data()可以存储包括对象在内的其他类型。 -
@nnnnnn - 是的。我知道 jQuery 使用
$.cache来处理data(),但我认为值得一提的是数据键和 Rifky 使用的属性之间的轻微脱节。 -
@Phylogenesis - 啊。对,对不起。 (我自己的断开连接。)
标签: javascript jquery function jquery-data