「@」を入力すると、知っている可能性のあるユーザーのリストが表示されるように、ハッシュタグとユーザー メンションの入力を作成しました。
この時点まではすべて問題ありませんが、ユーザーの a href タグをクリックすると、次のようになります。
<a href="javascript:void(0);">
<span style="background:url('/uploads/user_00010/thumbs/32x32_d30302e9-07d7-8fd7-dba0-1a217c9c5534.jpg') no-repeat" class="tny_avatar"></span>
<span class="username">Sara</span>
<span style="height:0px;display:block;" class="clr"></span>
</a>
ユーザー名を取得して、テキストエリアの適切な場所に直接配置したい...
私がしたこと:
テキストエリア内の現在の単語 (前のスクリーンショットでは currentWord = 'sa') を取得し、この現在の単語をリストのユーザー名スパン内の単語に置き換えます。
このソリューションの問題は、部分文字列「sa」がテキストエリアの別の単語に存在する場合、それも置き換えられることです。
これは私のjsコードです:
$('.suggest ul li a').live('click', function () {
var text = $('.quote textarea').val();
var newVal = $(this).find('.username').html();
text = text.replace(lastWord, '@' + newVal);
$('.advText').val(text);
$('.advText').trigger('keyup');
$('.tglst').hide();
});
lastWord は、ブランキング カーソルが指している現在の単語です。これはグローバル js 変数です。
trigger('keyup')
、ハッシュタグとメンションを異なる色(青)で含むdivを作成するいくつかの関数をトリガーしています。それだけです。
$('.tglst').hide();
ドロップダウンを隠しています。
現在の単語のみを置き換える方法を知っている人はいますか?
前もって感謝します