2013-01-08 32 views
0

我有一個嵌套在textarea中的跨度,並希望獲得此跨度相對於文檔的偏移量。零總是返回左側和頂部,我不知道爲什麼。如何獲取嵌套在文本區域內的跨度的位置

這裏是下面的代碼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的value財產

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

回答

2

DOM是不知道這個span的。

爲了計算頁面上的x,y座標,您需要遵循文本區域中的字符/線條並計算放置光標的大致位置。這不是一項簡單的任務,主要是因爲在自由流動的文本上計算換行符(特別是沒有單一空格字體是具有挑戰性的)。

+0

我覺得這是類似的東西。我繼續以不同的方式實施我想做的事,謝謝。 – Kevin

+0

太棒了!樂意效勞。 –