2012-06-05 15 views
15

jQueryのオブジェクトにメソッドを追加する方法はありますか?jQueryオブジェクトに新しいメソッドを追加する方法は?

例えば、私はjQueryオブジェクト

a = $('div') 

を持って私はそのような割り当てられたすべてのオブジェクトは、特定の方法(doSomething())を有することたいので、私は

a = $('.foo') 
a.doSomething() 

b = $('.bar') 
b.doSomething() 

答えて

16

のようにそれを追加します名前空間。関数内では、thisはDOMオブジェクトではなくjQueryオブジェクトを参照します。

$.fn.doSomething = function() { 
    this.css('color', 'red'); 
}; 

$('#retk').doSomething(); 

jsFiddle Demo

についてwriting jQuery plugins追加のガイドラインについてをお読みください。

1
ようにそれを呼び出すことができ

はあなたがにあなたの機能を追加する必要が

$.fn.doSomething = function(data){ 
    // data is the argument passed to doSomething 
    return this.each(function(){ 
     var elem = $(this); 
     //perform operation on elem 
     // like to change background color use 
     elem.css('background-color','red'); 

    }); 
} 
+1

これは、作成された* jQueryオブジェクトに影響することを指摘したいと思います。 – jAndy

+0

@jAndy最新の回答、今すぐ正しいかどうか確認して確認できますか? –

+0

'.css()'メソッドはここでは本当に良い例ではなく、 '.each()'を無意味に使用しています。 – kapa

関連する問題