覆盖jQuery插件方法,默认为单个实例

Kil*_*e2k 4 methods jquery plugins overriding

基本问题是:如何在不编辑原始插件文件的情况下执行插件方法的基本覆盖?

是否可以为特定实例创建覆盖:

示例:rtf插件使用:

$('selector').wysiwyg('setContent',newContent);
Run Code Online (Sandbox Code Playgroud)

为了将rtf文本显示为只读,我希望将相同的方法应用于div而不是IFRAME的主体

我想用我自己的代码覆盖原来的'setContent',只是为了这一个元素.

谢谢

jAn*_*ndy 5

(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);
Run Code Online (Sandbox Code Playgroud)

您可以以这种方式轻松覆盖(我喜欢称之为半挂钩)功能.在此示例中,您将覆盖.css()jQuery函数并返回值的自定义值等于'somecolor',否则,将使用传递的参数调用原始函数.