Возможно, но его использования в производстве следует избегать любой ценой .
Изменение основных функций библиотеки, которая часто используется в тандеме с несколькими плагинами, - плохая, опасная и плохая и опасная идея.
Возможно, вы сможете заставить перезаписанный метод взаимодействовать и вести себя по-своему и вести себя иначе только для подмножества параметров; тем не менее, в последующих выпусках библиотеки, если этот основной метод изменится, короче говоря, вы можете быть испорчены и вынуждены вернуться к перезаписанному методу.
Лучше использовать другое имя метода. Возможно, для ваших целей вы можете использовать style
, xCss
, cssExt
или что-то в этом роде.
Если вы ищете один метод, сочетающий в себе функциональность как вашего метода, так и основного метода, то лучше использовать противоположный подход. Вместо того, чтобы перезаписывать основной метод, добавьте в него дополнительные функции и, конечно, новое имя.
jQuery.fn.xCss = (function() {
var compoundProperties = {
'padding': ['padding-top', 'padding-right' ...],
'border': ['border-width', 'border-style', ...],
'background': ['background-color', ...],
...
};
return function(property, value) {
// Use plugin functionality
if ( compoundProperties.hasOwnPropery(property) ) {
// Get value
if ( !value ) {
var propertySet = compoundProperties[property],
result = [];
for ( var i=0, l=propertySet.length; i<l; ++i ) {
result.push( this.css(propertySet[i]) );
}
return result.join(" ");
}
// Set value
...
return this;
}
// Use core functionality
return this.css.apply(this, arguments);
};
})();
* Код не проверен или не завершен.