0

除了 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

4

2 回答 2

2

只需将格式为 json 字符串的对象传递给属性,jQuery 数据就会为您解析它。

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

另请参阅更新的小提琴

于 2012-04-05T18:46:35.090 回答
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 ));
    }
  });
};

我不是大师,但对我来说效果很好

于 2013-01-28T10:26:38.110 回答