Переопределение методов плагина jQuery, по умолчанию и для отдельных экземпляров - PullRequest
4 голосов
/ 15 апреля 2010

Основной вопрос: как выполнить базовое переопределение метода плагина без редактирования исходного файла плагина?

Можно ли создать переопределение для конкретного экземпляра:

Пример: Плагин RTF использует:

$('selector').wysiwyg('setContent',newContent);

Для того чтобы текст rtf отображался только для чтения, я бы хотел, чтобы тот же метод применялся к div вместо тела IFRAME

Я бы хотел переписать исходный 'setContent' своим собственным кодом, только для этого одного элемента.

* +1011 * Спасибо

1 Ответ

5 голосов
/ 15 апреля 2010
(function($){

var _oldcss = $.fn.css;

$.fn.css = function(prop,value){

    if (value.toLowerCase() === 'somecolor') {
       return _oldcss.call(this,prop,'#EA7E5D');
    } else {
       return _oldcss.apply(this,arguments);
    }
};
})(jQuery);

Таким способом вы можете легко перезаписать (мне нравится называть это полу-перехват). В этом примере вы перезаписываете функцию .css() jQuery и возвращаете пользовательское значение вашего значения равно somecolor, в противном случае исходная функция вызывается с переданные аргументы.

...