1
マイ例:からkeyupイベントは、パフォーマンスの低下を働いている
$(document).on('keyup', '[contenteditable=true]', function (e) {
let _this = $(this), text = _this.text();
if (text.length === 1) {
let span = $('<span>').text(text);
_this.html(span);
}
console.log(_this.html());
});
[contenteditable=true] {
border: 1px solid #ccc;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<div contenteditable="true"></div>
私の問題:私はdiv要素の中に通常の速度でいくつかのテキスト(1文字以上)を入力すると、コードが正常に動作します。しかし、高速でテキストを入力しようとすると、<span>
タグがdivに追加されませんでした。
どうすれば修正できますか?あなたはときに気管切開ユーザ入力、それがより効率的だ代わりにinput
イベントを使用することができ
それは最初からkeyupがで複数の文字を見て意味し、あなたは速いつもりだとき、あなたは最初からkeyup前mulitple keydownsを持っているという事実だ、*スピード*ではありませんdiv。 'keypress'を使用した場合、望みの結果が得られます(または、Zakariaが指摘しているように' input' - ペーストで 'input'が発生します。 –
@ T.J.Crowderありがとう!私はそれを覚えています。 –