除了jquery插件选项,我想用html5数据属性覆盖这些值。
这是选项所需的格式:
var defaults = {
text: {
color: 'red',
opacity: 0.5
},
button: {
width: 100,
height: 30
}
}
我想格式化数据属性,如下所示:
<div data-text="color:'red', opacity: 0.5"></div>
...但您无法读取此数据o.text.color
,因为它根本不存在。但是o.text
内有数据。
我如何设置数据属性的格式,以便我可以使用o.text.color
获取值?
答案 0 :(得分:2)
只需将格式化为json字符串的对象传递给属性,jQuery数据就会为你解析它。
<div class="test" data-test='{ "test1":"Lorem","test2":"Ipsum" }'></div>
答案 1 :(得分:0)
这不是很干净,让我想起HTML中的onclick事件。为什么不把它们分成数据-test1 =“Lorem”&amp;数据TEST2 = “存有”?
插件可能是这样的(扩展jquery插件样板):
function Plugin( element, options, objD ) {
this.element = element;
this.options = $.extend( {}, defaults, options, objD );
this._defaults = defaults;
this._name = pluginName;
this.init();
}
$.fn[pluginName] = function ( options ) {
return this.each(function () {
if (!$.data(this, "plugin_" + pluginName)) {
var objD = $(this).data();
$.data(this, "plugin_" + pluginName, new Plugin( this, options, objD ));
}
});
};
我不是大师,但对我来说效果很好