0

テキストエリア内にネストされたスパンがあり、ドキュメントに対するこのスパンのオフセットを取得したいと思います。左と上は常にゼロが返されますが、その理由はわかりません。

これは、デモ用の次のコードを含むjsFiddleです。

$(document).ready(function(){
  $("#textarea1").html("1234 <span id='span1' style='color:red'>5678</span>");
  var offset = $("#span1").offset();
  alert("span1 left: " + offset.left + "  top: " + offset.top);
});

textareaに対して、スパンの位置がゼロになる理由がわかります。しかし、オフセットがゼロを返している理由がわかりません。誰かがここで私を助けてくれるなら、私はそれをいただければ幸いです。


編集:私の目標は、クリックされたときにスパンの上に何かを配置することでした。上記のスパンのオフセットを取得できなかったため、代わりにマウス座標を使用することにしました。

$("#id").dblclick(function(e){
 alert("X: " + e.pageX + " Y: " + e.pageY);
});
4

1 に答える 1

2

DOMは、textareaのプロパティにspan含まれているだけなので、これを認識しません。value

ページ上のx、y座標を計算するには、テキスト領域の文字/線をたどり、カーソルを置くためのおおよその位置を計算する必要があります。これは、主に自由に流れるテキストの改行を計算するための簡単な作業ではありません(特に、モノスペースフォントがない場合は困難です)。

于 2013-01-08T20:39:54.280 に答える