2012-04-05 4 views
1

私はcontenteditable div内の単語をインラインで解析し、タグ(@ ...、#...)をアンカータグで置き換える関数を書いています。私はkeyupイベントでそれを発射していた、そしてそれは完全に働いた。問題は、ユーザーがスペースを叩いただけでなく、単語以外の文字を打った後でもタグを置きたいということでした。 keyupイベントは入力された実際の文字ではなく、押されたキーにのみアクセスできるため、句読点は認識できませんでした。range.toString()はjavascript keypressイベントの最後の文字を切り捨てます

私がしたのは、keypressイベントに変更されました。アンカーを作成するときに、タグの最後の文字が機能しなくなりました。私のコードはhttp://jsfiddle.net/jwoah12/CcwSt/115/です。

wordStartとwordEndは正しい値を持つようですが、j.toString()は誤った結果を生成します。

おかげで、
ジャレッド

答えて

1

次のことを試してみてください。

のキー押下では、文字が変数に保存し、入力します。 キーアップで、変数の値を調べ、探している句読点であれば、置換ロジックを実行します。

+0

ありがとうございます!これはトリックです。ただし、入力が速すぎると、keyupイベントが逃してしまう可能性があるため、キーアップを使用する必要はありません。 – Jared

関連する問題