Мне нужно создать функцию, которая будет возвращать объект jQuery.Color, и я не знаю, как это сделать. Вот пример кода
function newcolor () { var obj = new $.Color( 'rgb(0,0,0)' ); return obj;}
var foo = newcolor();
foo.red();
Редактировать:
Мой полный код:
function my (element,a,b,c){ //class my
this.target = $(elem);
this.new_color = function (a,b,c) { return new $.Color( 'rgb('+a+','+b+','+c+')'); }
this.base_color = new_color (a,b,c);
this.colorize = function () ( this.target.css({ background-color: new_color });
}
var div = new My($('foo'),0,0,0);
div.new_color(255,255,255);
div.colorize();
Моя цель - создать класс, который может содержать элемент jquery и работать с ним. Теперь я застрял в возврате $.Color().
Как насчет чего-то вроде этого:
function My(elem,r,g,b){ //class my
this.setColor = function(r,g,b) {
this.r = (r || 0);
this.g = (g || 0);
this.b = (b || 0);
};
this.colorArray = function() {
return [this.r, this.g, this.b];
};
this.colorString = function() {
return "rgb(" + this.colorArray().join(",") + ")";
};
this.colorize = function(r,g,b) {
if (r && g && b) {
this.setColor(r,g,b);
}
var color = $.Color(this.colorString());
this.target.css({backgroundColor: color});
}
// initialize
this.target = $(elem);
this.setColor(r,g,b);
this.colorize();
};
var div1 = new My($('#div1'),100,20,40);
div1.setColor(255,255,200);
div1.colorize();
var div2 = new My($('#div2'),100,20,40);
Вы заметите, что я в основном добавил некоторые функции-обертки и просто сохранил отдельные значения r, g, b для экземпляра. Затем вы вызываете только метод j1Query.Color в последнюю минуту, когда вам это нужно. Тогда нет необходимости располагать экземпляр цвета.
Я также поставил это на codepen: http://codepen.io/bunnymatic/pen/yLxwp
setColor
запускатьcolorize
чтобы каждый раз, когда вы вызываете setColor, цвет обновляется.