переопределить метод пользовательского плагина jquery

#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 обращается к плагину.