我通過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() –