jqueryプラグイン学習(二)
1792 ワード
グローバル関数を作成するには、jqueryオブジェクトに属性を追加するだけでよいが、jqueryオブジェクトを作成する方法はjqueryであってもよい.fnは属性を追加して実現するが、実際にはjquery.fnオブジェクトはjqueryです.prototypeプロトタイプオブジェクトの別名は、別名を使用すると参照が容易になります.
demo:
その後、任意のjqueryオブジェクトでメソッドを呼び出すことができます.
ここではdomノードに一致する場所はどこにもないので、グローバル関数を記述してもよい(前節で述べたよ)が、jqueryオブジェクトメソッドを使用する場合、関数内のthisキーワードは常に現在のjqueryオブジェクトを参照するので、上のメソッドを書き換えて、動的プロンプト情報を実現することができる.コードは以下の通りである.
ここで、上記の例では、jqueryセレクタが返す配列タイプのdomノードのセットであるため、thisポインタは現在のセットを指すため、現在の要素のノード名を表示するには、thisポインタの後ろに現在の要素のシーケンス番号を指定する必要があります.
思考:jqueryセレクタが複数の要素に一致する場合、現在の要素のオブジェクトをどのように正確に指定すればいいのでしょうか.---
この問題を解決するには、現在のjqueryオブジェクトメソッドの環境でeach()メソッドを呼び出し、暗黙的に反復することで、thisポインタに一致するdom要素オブジェクトを順番に飲ませます.たとえば、前の例についてさらに変更します.
次に、メソッドを呼び出すときに、jqueryセレクタが一致する要素がどれだけあるかを心配する必要はありません.たとえば、次の例では、異なる要素をクリックすると、現在のノード名が表示されます.
demo:
jQuery.fn.test = function(){
alert(' jquery ');
}
その後、任意のjqueryオブジェクトでメソッドを呼び出すことができます.
$(function(){
$('h1').click(function(){
$(this).test();
});
});
ここではdomノードに一致する場所はどこにもないので、グローバル関数を記述してもよい(前節で述べたよ)が、jqueryオブジェクトメソッドを使用する場合、関数内のthisキーワードは常に現在のjqueryオブジェクトを参照するので、上のメソッドを書き換えて、動的プロンプト情報を実現することができる.コードは以下の通りである.
jQuery.fn.test = function(){
alert(this[0].nodeName); // jquery dom
}
ここで、上記の例では、jqueryセレクタが返す配列タイプのdomノードのセットであるため、thisポインタは現在のセットを指すため、現在の要素のノード名を表示するには、thisポインタの後ろに現在の要素のシーケンス番号を指定する必要があります.
思考:jqueryセレクタが複数の要素に一致する場合、現在の要素のオブジェクトをどのように正確に指定すればいいのでしょうか.---
この問題を解決するには、現在のjqueryオブジェクトメソッドの環境でeach()メソッドを呼び出し、暗黙的に反復することで、thisポインタに一致するdom要素オブジェクトを順番に飲ませます.たとえば、前の例についてさらに変更します.
jQuery.fn.test = function(){
this.each(function(){ // , this
alert(this.nodeName); // jquery dom ( , )
});
}
次に、メソッドを呼び出すときに、jqueryセレクタが一致する要素がどれだけあるかを心配する必要はありません.たとえば、次の例では、異なる要素をクリックすると、現在のノード名が表示されます.
$(function(){
$('body *').click(function(){
$(this).test();
});
});
ceshi
dddddddddd
div