0

現在取り組んでいるプロジェクトがあります。このプロジェクトでは、いくつかのボタンのテキストをライブ更新したいと考えています。私contenteditable="true"は自分のプロジェクトで使用しました。私には2つの解決策があります。最初のものは問題なく動作しますが、2番目のものには問題があります。ユーザーがキーを長時間押すと、キーを離さずにテキストが表示されます。
最初の例keyupではイベントを使用し、2 番目の例ではkeydownイベントを使用しました。keyupイベントが発生すると、ボタンの内側のテキストが新しいテキストに変わります。

ここに私の最初のもののコード(キーアップ)があります:

$('[contenteditable]').on('keyup', function() {
    $(this).closest('.code').prev().find('a').html($(this).html());
})

jsfiddle .

これが私の2番目のもののコードです(keydown):

$('[contenteditable]').on('keydown', function() {
    $(this).closest('.code').prev().find('a').html($(this).html());
})

jsfiddle。

4

2 に答える 2

0

inputイベントを試す

$('[contenteditable]').on('input', function() {
  $(this).closest('.code').prev().find('a').html($(this).html());
})
于 2016-03-01T10:25:08.030 に答える
0

keydownユーザーが入力している要素のコンテンツは、イベントの時点で必ずしも更新されているとは限りません。そのため、更新されません。

を使用すればkeyup、その問題は発生しません。

于 2016-03-01T10:16:33.460 に答える