これを JS で使うととても簡単であることがわかりました
$ (document).ready(function(){
var DragElement=null;
$("#zz").mousedown(function(){
DragElement=this;/ /これは $("#zz") オブジェクトを参照します
$(document).mousemove(function(){
直接の場合 $(this).css("left")//mousemove 内にあるので、このオブジェクトは $("#zz") ではありません。
この場合、$(DragElement).css("left")// 得られるものは $("#zz")
} です。 )
})
})
$(this) は何を生成しますか? $() は何を生成しますか?実際、$()=jquery() は、jquery オブジェクトが返されることを意味します。
余談: 通常、簡単にするために $() を直接使用します。実際、この関数はパラメーター コンテキストを省略します。つまり、context を指定する場合は、context を次のように指定できます。 dom 要素のセットまたは jquery オブジェクト。
$() が jquery オブジェクトを返すという結論によれば、$(this) は jquery オブジェクトを返すと結論付けることができます。オブジェクトを出力するには、汎用のalert() メソッドを使用できます。 alert($('#btn'));
表示される結果:
画像内の赤いボックスはオブジェクトです。オブジェクトは当然 jquery オブジェクトです。つまり、$('#btn') を使用して jquery のメソッドとプロパティを呼び出します。
これは何を表していますか?
これ、プログラマーは、これがコンテキストが配置されているオブジェクトを表すことを知っています。これは当然のことですが、このオブジェクトは正確には何でしょうか。 jsにもgetTypeがある場合、戻り値は何になるでしょうか?実際、ユニバーサル アラートがあるため、js で getType を使用する必要はありません。次のコードを見てください:
$('#btn').bind("click",function(){
alert(this);
alert($(this));
});
私たちの経験によれば ($() は jquery オブジェクトを生成するため)、これは当然 jquery オブジェクトです。しかし、返された結果を見てみましょう:
何が返されるのでしょうか? [object HTMLInputElement]——素晴らしい HTML オブジェクトですね。そのため、 this.val() を直接使用したり、これを通じて jquery 固有のメソッドやプロパティを直接呼び出したりすると、通常はエラーが発生します。なぜでしょうか?承知の上で質問してください!もちろん、html オブジェクトには「プロパティやメソッドは含まれません」。では、なぜ jquery オブジェクトのコンテキストでこれを呼び出すと、jquery オブジェクトではなく html オブジェクトが返されるのでしょうか? jquery の API ドキュメントを見ると、キーワード this は jquery で特別に「処理」されていないようです。つまり、これは js 内にあり、jquery によって再定義されていないことを意味します。したがって... もちろん、これは単なる私個人の考えです。これについて詳しく知っている人がいたら、メッセージを残して修正してください。上記のコードのalert($(this));の戻り値を見てみましょう。これは当然jqueryのオブジェクトです。jqueryの独自のメソッドとプロパティを呼び出すのはまったく問題ありません。
結論:
これは、現在のコンテキスト オブジェクトが HTML オブジェクトであることを示しており、HTML オブジェクトが所有する属性、メソッド
を呼び出すことができます。 $(this), 表現されたコンテキスト オブジェクトは、jquery のメソッドと属性値を呼び出すことができる jquery コンテキスト オブジェクトです。