position()
とoffset()
の違いは何ですか?クリックイベントで次のことをしようとしました。
console.info($(this).position(), $(this).offset());
そして、それらはまったく同じように見える...(クリックされた要素はテーブルのテーブルセル内にあります)
これは、要素がどのコンテキストにあるかによって異なります。position
は、位置オフセットの親を基準を返し、offset
は同じ文書を基準を返します。明らかに、ドキュメントがオフセットの親である場合(これがよくあるケースです)、これらは同一になります。
ただし、このようなレイアウトがある場合:
<div style="position: absolute; top: 200; left: 200;">
<div id="sub"></div>
</div>
この場合、subのoffset
は200:200になりますが、そのposition
は0:0になります。
。offset()メソッドにより、ドキュメントに関連する要素の現在位置を取得できます。これを。position()と比較してください。これは、オフセットの親に対して相対的な現在位置を取得します。グローバル操作(特にドラッグアンドドロップの実装)のために既存の要素の上に新しい要素を配置する場合、.offset()の方が便利です。