2011-09-17 35 views
1

相似,我問this問題而回有關獲取字符串的onClick隨着Android的指標,我想現在要做的JavaScript同樣的事情(我使用jQuery庫,如果有任何對我來說也是有用的功能)。我在網上搜索和SO,似乎無法找到任何東西。我在這個問題的答案我聯繫與(X,Y)座標和偏移,which I noticed jQuery has交易,但它似乎給整個元素相對於文檔,而不是實際的(X,Y)座標的位置。有沒有一種類似的方法來獲得JavaScript的(x,y)座標(或者更簡單的獲取onClick索引的方法)?如果我的問題不夠清楚,給出下面的字符串:的OnClick指數字符串

Mary never went to school. Mary was way too cool. 

我想如果有人在第一個「瑪麗」點擊了「Y」有它,這樣我可以拿回3等。

與往常一樣,任何幫助或固體方向不勝感激。

+2

是否一定要在一個div的文字?對於這個準確的東西,它可能更容易在畫布元素上繪製自己的字符串,並使用它來計算點擊與文本位置。 https://developer.mozilla.org/en/Drawing_text_using_a_canvas – arunkumar

+0

馬特我知道它是多麼煩人得到SO問題沒有任何代碼。如果我有一個正確的方向,並且搞亂了技術/實現方面的話,我會展示一些代碼。現在我只需要一些方向。我沒有要求實際的代碼。 – Vinay

+0

你想''(x,y)'或索引在字符串中嗎? – pimvdb

回答

2

如果文本是足夠短,它不會是可怕的包裹每個字母在自己<span>

喜歡的東西:

var text = $("#clickable-letter-div").html(); 

var wrapped = $.map(text.match(/./g), function(s, idx){ 
    return "<span class='letter'>" + s + "</span>" 
}).join(""); 

$("#clickable-letter-div").html(wrapped); 

$(".letter").click(function(){ 
    var pos = $(this).parent().children().index(this); 
    alert(pos); 
}); 
+0

哼從來沒想過那樣。是的,絃樂不會太長。也許每個String/snippet最多50-70個字符。謝謝ABentSpoon,我一定會嘗試一下。 – Vinay

+0

剛剛實施了這個。奇蹟般有效。非常感謝你。如果只是一個大方向,我會一直很好,但這是非常簡潔,易於遵循的代碼。我希望我可以兩次上癮。 – Vinay

+1

's'應該是HTML轉義被插入的標記字符串之前,否則'<'或'&'文本中的字符將斷裂。 – bobince