0

私のプロジェクトでは、優れた便利なjQuery TextRangeプラグインを使用しています。テキストエリアの上部にハイライト div があり、ユーザーが編集していた実際の要素を知る必要があります。よりよく理解するために、以下に多くの例を使用します。

私のプロジェクトでは、テキストエリアにこのテキストがある場合:

Text that doesn't matter #this_matter and #this_too

ハイライト div に次のようなものがあります。

"Text that doesn't matter <b>#this_matter</b> and #this_too</b>"

すべて大丈夫ですが...

私が編集している「ハッシュタグ」が何であるかを知る必要があります。ですから、位置を使用してこれを修正すると思いますが、ご覧のとおり、いくつか質問があります。私のテキストエリアでは、次を使用してカーソル位置を取得します。

input = $('#post-input')
var cursorPosition = input.textrange('get','position')

この情報を使用して、編集中のハッシュタグを知る必要があります。|がテキストエリア内のカーソル位置のシンボルであると仮定すると、次のようになります。

"Text that doesn't matter #this_matter and #this|_too"

<b>#this_too</b>これは実際のハッシュタグであるため、要素を返す必要があります。もう一つの例:

 "Text that doesn't matter #|this_matter and #this_too"

返さなければなりません<b>#this_matter</b>

結局のところ、カーソル位置情報を含む正しい要素を返すにはどうすればよいですか?

4

1 に答える 1

0

document.elementFromPointを使用できます。

document.elementFromPoint(event.clientX, event.clientY);
于 2013-10-20T02:32:41.837 に答える