Что я хочу сделать, это установить параметры в плагин, как обычно, но также переопределить эти параметры с помощью атрибутов данных html5.
Здесь у меня есть именно это (jsfiddle) , но есть небольшая проблема с этим.
Код JSFiddle:
(function($){
$.fn.extend({
test: function(options) {
var defaults = {
background: null,
height: null
};
var options = $.extend( defaults, options);
return this.each(function() {
var o = options;
var obj = $(this);
var objD = obj.data();
// background
if ( !objD.background) {
var cBG = o.background;
}
else {
var cBG = objD.background;
}
// Opacity
if ( !objD.height) {
var cH = o.height;
}
else {
var cH = objD.height;
}
obj.css({
background: cBG,
height: cH
});
});
}
});
})(jQuery);
$(document).ready(function() {
$('.test').test({
background: 'red',
height: 400
});
});
Метод, который я использую в jsfiddle, так сильно раздувает код, даже всего с двумя различными опциямикоторые также используют данные.
Вопрос: Как можно достичь того же конечного результата с меньшим количеством кода, чтобы определить, следует ли использовать данные или нет?
Вот часть кода из jsfiddle, которая определяет, использовать данные или нет.
// objD is obj.data();
// background
if ( !objD.background) {
var cBG = o.background;
}
else {
var cBG = objD.background;
}
// Opacity
if ( !objD.height) {
var cH = o.height;
}
else {
var cH = objD.height;
}
obj.css({
background: cBG,
height: cH
});