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

时间:2010-04-15 11:00:09

标签: jquery plugins methods override

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

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

实施例: rtf插件使用:

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

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

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

由于

1 个答案:

答案 0 :(得分: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);

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