2011-02-15 13 views
37

jQueryの既存の関数を拡張するプラグインを作成しようとしています。既存のjQuery関数を拡張する

(function($) 
{ 
    $.fn.css = function() 
    { 
     // stuff I will be extending 
     // that doesn't affect/change 
     // the way .css() works 
    }; 
})(jQuery); 

.css()機能を拡張する必要があるビットはほんの少しです。あなたはclassName extend existingClassができるのでPHPクラスについて考えていたので、jQuery関数を拡張できるかどうかを尋ねています。

+2

あなたは何を追加しますか? –

答えて

73

確かに...ただ、既存の関数への参照を保存し、それを呼び出す:...

(function($) 
{ 
    // maintain a reference to the existing function 
    var oldcss = $.fn.css; 
    // ...before overwriting the jQuery extension point 
    $.fn.css = function() 
    { 
     // original behavior - use function.apply to preserve context 
     var ret = oldcss.apply(this, arguments); 

     // stuff I will be extending 
     // that doesn't affect/change 
     // the way .css() works 

     // preserve return value (probably the jQuery object...) 
     return ret; 
    }; 
})(jQuery); 
+13

良い答えですが、**適用されたメソッドを**返すべきですので、jQuerysチェーンは生き続けるようにしてください。 – jAndy

+1

@jAndy:優れた点、ありがとう! –

0

ピーターErriksonはjsfiddleコードサンプルとextending jQuery with two new events, onShow and onHide に非常にusfullコードを書く

私はsuggesstその記事を読む.itsitsはとても素敵に見える:)

+2

あなたは記事の興味深い部分を取って答えに入れてください。回答のみが一般的にSO –

+0

で受け入れられませんが、それはその質問に答える!!私は再びそのコードを書くべきですか? –

+1

回答の必須部分をここに含めて(コードをもう一度コピーしても)参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になる可能性があります。 –

関連する問題