3

create のようなウィジェット メソッド内で this と $(this) は何を意味しますか?

たとえば、このようなウィジェットを持っていると、

$.widget("sample.CustomWidget", {
options:{
},
_create: function(){
// Here what do this and $(this) mean
}
});

前もって感謝します、

-ラジャ。

4

5 に答える 5

5

それは基本的に _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

于 2012-03-30T13:05:15.713 に答える
3

標準の jQuery UI スタイル ウィジェットのイベント ハンドラー内で、イベントthisに関連する DOM 要素を参照し、 の$(this)周りに jQuery ラッパーを作成しthis、DOM 要素 (再び) を として使用できますthis

ただし、ウィジェット関数が呼び出されると、通常this、特定の DOM 要素ではなく、関数が呼び出された jQuery オブジェクトを参照します。次に、その jQuery オブジェクト内の一致する要素のセットを操作します。

于 2012-04-03T11:41:55.240 に答える
2

jQuery と統合されたメソッド:

$.fn.yourFunction = function() {
  // ...
};

の値はthisjQuery オブジェクトそのものです。thisしたがって、害はありませんが、jQuery への別の呼び出しでラップする理由はありません。

イベント ハンドラーへのコールバック:

$('#myButton').click(function() {
  // ...
});

の値はthis、イベントのターゲット DOM 要素、またはイベントが実際の DOM 以外でトリガーされた場合はターゲット オブジェクトです。

.each()たとえば、他の jQuery コールバックの状況では、 の値thisは通常、jQuery オブジェクトの性質によって決まります。

つまり、jQuery と統合された関数 (最初のサンプル) 内では、通常、jQuery への別の呼び出しをラップしません。thisそれはすでに jQuery オブジェクトです。それ以外のすべての場合で、thisjQuery 機能を使用する場合は、それをラップする必要があります。

于 2012-04-03T11:45:13.897 に答える
1

そのコンテキストでは、「this」は実際の JQuery ウィジェット オブジェクトであり、widgetName、widgetEventPrefix などを照会できますが、「$(this)」は「this」の単なる JQuery オブジェクトであり、取得できません。ウィジェットのプロパティを使用します。

于 2012-03-30T13:05:13.307 に答える
1

これは、現在のコンストラクターを表します。たとえば、クリック イベントでは dom 要素がクリックされ、関数では関数のコンストラクターです。

function test{
    this.b = "hello jupiter";
}
var a = new test();
alert(a.b);

実際、$(this) には特別なことは何もありません。$ という関数があり、「this」はアラートのようなパラメーターです。

$(this);
//just like
alert("some string);
于 2012-04-03T12:02:47.960 に答える