2012-04-05 52 views
0

除了jQuery插件选项,我想重写使用HTML5数据属性的值。HTML 5的数据属性为jQuery插件选项格式


这是optionis所需的格式:

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价值?

回答

2

只是通过格式化像一个JSON字符串到属性的对象,和jQuery数据将解析它。

<div class="test" data-test='{ "test1":"Lorem","test2":"Ipsum" }'></div> 

另见updated fiddle

+0

这总是会发生的..这件事情简单,我只是不能换我的手指在它周围。谢谢。 – Joonas 2012-04-05 18:56:48

0

这个心不是很干净,在HTML让我想起的onclick事件。为什么不把它们分离出来data-test1 =“Lorem”& data-test2 =“Ipsum”?

插件可能是这样的(扩展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)); 
    } 
    }); 
}; 

林没有大师,但很适合我

+0

原因源于我希望使用这种格式:http://pastebin.com/pnEeNje7选项,因为我发现它比以前像这样铺设它们的通常方式要清晰一些并且更容易记住: http://pastebin.com/6DxTvgzL特别是如果名称很长并且有多个选项。 – Joonas 2013-01-28 11:13:11