我通过HTML标记的data-options属性将选项传递给对象。 HTML标记看起来像这样:从HTML标记的数据属性传递对象时jQuery extend()
<div class="js-target" data-options="{'openText':'Simon SaysOpen','closeText':'Simon Says Close','loadingText':'Simon Says Wait'};"></div>
在数据选项的对象属性是使用jQuery的延伸()方法被添加到缺省对象。我不确定为什么返回的对象将每个字母视为关键值对。
这里有一个小提琴和我的JavaScript:http://jsfiddle.net/2eQG3/
var element = $('.js-target');
(function(ele) {
var defaults = {
'isOpen' : false,
'isItCool' : true,
'openText' : 'Open',
'closeText' : 'Close'
};
var opts = ele.data().options;
console.log(opts);
console.log(defaults);
var settings = $.extend({}, defaults, opts);
console.log(settings);
})(element);
我想设置对象看起来像这样:
{
'isOpen' : false,
'isItCool' : true,
'openText' : 'Simon Says Open',
'closeText' : 'Simon Says CLose',
'loadingText' : 'Simon Says Wait'
}
ÿ ou需要JSON.parse() –