2010-04-15 75 views
4

基本問題是:如何在不編輯原始插件文件的情況下執行插件方法的基本覆蓋?覆蓋jQuery插件方法,默認和單個實例

是否有可能爲特定實例創建替代:

實施例: 一個RTF插件使用:

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

爲了顯示RTF文本爲只讀我想爲同一方法應用於div而不是IFRAME的主體

我想用我自己的代碼覆蓋原始的'setContent',只是爲了這一個元素。

感謝

回答

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」的自定義值 ,否則將使用 傳遞參數調用原始函數。