create のようなウィジェット メソッド内で this と $(this) は何を意味しますか?
たとえば、このようなウィジェットを持っていると、
$.widget("sample.CustomWidget", {
options:{
},
_create: function(){
// Here what do this and $(this) mean
}
});
前もって感謝します、
-ラジャ。
create のようなウィジェット メソッド内で this と $(this) は何を意味しますか?
たとえば、このようなウィジェットを持っていると、
$.widget("sample.CustomWidget", {
options:{
},
_create: function(){
// Here what do this and $(this) mean
}
});
前もって感謝します、
-ラジャ。
それは基本的に _create メソッドの呼び出し元に依存します...とにかく:
this
関数の「所有者」を参照します
$(this)
jQueryオブジェクトにラップされた上記のオブジェクトです
以下も参照してください。
http://www.quirksmode.org/js/this.html
http://www.bennadel.com/blog/1838-Wrapping-The-Window-Object-In-A-jQuery-Wrapper.htm
標準の jQuery UI スタイル ウィジェットのイベント ハンドラー内で、イベントthis
に関連する DOM 要素を参照し、 の$(this)
周りに jQuery ラッパーを作成しthis
、DOM 要素 (再び) を として使用できますthis
。
ただし、ウィジェット関数が呼び出されると、通常this
、特定の DOM 要素ではなく、関数が呼び出された jQuery オブジェクトを参照します。次に、その jQuery オブジェクト内の一致する要素のセットを操作します。
jQuery と統合されたメソッド:
$.fn.yourFunction = function() {
// ...
};
の値はthis
jQuery オブジェクトそのものです。this
したがって、害はありませんが、jQuery への別の呼び出しでラップする理由はありません。
イベント ハンドラーへのコールバック:
$('#myButton').click(function() {
// ...
});
の値はthis
、イベントのターゲット DOM 要素、またはイベントが実際の DOM 以外でトリガーされた場合はターゲット オブジェクトです。
.each()
たとえば、他の jQuery コールバックの状況では、 の値this
は通常、jQuery オブジェクトの性質によって決まります。
つまり、jQuery と統合された関数 (最初のサンプル) 内では、通常、jQuery への別の呼び出しをラップしません。this
それはすでに jQuery オブジェクトです。それ以外のすべての場合で、this
jQuery 機能を使用する場合は、それをラップする必要があります。
そのコンテキストでは、「this」は実際の JQuery ウィジェット オブジェクトであり、widgetName、widgetEventPrefix などを照会できますが、「$(this)」は「this」の単なる JQuery オブジェクトであり、取得できません。ウィジェットのプロパティを使用します。
これは、現在のコンストラクターを表します。たとえば、クリック イベントでは dom 要素がクリックされ、関数では関数のコンストラクターです。
function test{
this.b = "hello jupiter";
}
var a = new test();
alert(a.b);
実際、$(this) には特別なことは何もありません。$ という関数があり、「this」はアラートのようなパラメーターです。
$(this);
//just like
alert("some string);