#jquery #methods #overriding
#jquery #методы #переопределение
Вопрос:
У меня проблема с переопределением метода плагина. Я знаю, что есть много решаемых проблем, и я прочитал большинство из них, но я не могу решить свою проблему.
Я использую плагин, который выглядит как :
(function($) {
function ChangeColor(element, options) {
// Mise en place des options par défaut
var defaults = {};
this.$el = $(element);
}
var fn = ChangeColor.prototype;
fn.color = function(){
this.$el.css('color', 'green');
};
// On ajoute le plugin à l'objet jQuery $.fn
$.fn.changecolor= function(options) {
return this.each(function() {
var plugin = new ChangeColor(this, options);
$(this).data('changecolor', plugin);
});
}
$.ChangeColor= fn;
})(jQuery);
И я использую его как:
var element = $('.myElement').changecolor().data('changecolor');
element.color();
Как я могу переопределить метод color, если я хочу, чтобы мой цвет был, например, «красным»?
Я пробовал $.extend, $.widget, но все же. Я также пытался установить атрибут prototype, когда я console.log (element.prototype), он написан «undefined»
Спасибо за вашу помощь
Ответ №1:
Попробуйте этот,
$.fn.color = function() {
this.css('color', 'red')
}
Комментарии:
1. где я должен написать его без изменения исходного плагина?
2. Вам не нужно изменять код плагина. Код, который я написал, переопределит исходную функцию color, если ваш файл .js или .html обращается к плагину.