Расширение существующего плагина jQuery - PullRequest
0 голосов
/ 22 марта 2011

У меня есть существующий плагин jQuery, теперь я хочу его расширить. Рассмотрим нижеприведенный плагин:

$.fn.x = function(option) {
        var defaults = {
            a: 1,
            b: 2
        };

        option = $.extend(def, option);
        function abc() {
            //do something
        }
        function def() {
            //do something
        }
    };

Теперь вышеприведенный плагин, который я получил откуда-то. Мне нужно иметь пользовательское поведение для метода ABC, скажем

function abc() {
                //do something else
            }

Я не хочу менять существующий плагин. Можете ли вы сказать мне, как я могу добиться того же, расширяя его или создав свой собственный плагин?

Ответы [ 2 ]

1 голос
/ 22 марта 2011

Вы не сможете заменить / переопределить метод в этой конкретной ситуации, потому что он объявлен как локальная переменная.Лучшим решением было бы написать свой собственный плагин или расширить его с помощью опции для функции abc.Как то так:

function abc() {
    if(!!option.abc){
         return option.abc.call(this);    
    }
    alert('old abc');
}
0 голосов
/ 22 марта 2011

Подумайте, что вы ищете: jQuery extension

newFunctionality = {
    abc: function (){
        alert('yo');
    }
}

$.extend($.fn.x, newFunctionality);
$.fn.x.abc() #=> 'yo'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...