1

jQuery.keydown入力した最初の文字が起動しないのはなぜですか?

http://jsfiddle.net/AstRc/

<input id="foo" type="text">
<div></div>

$("#foo").on('keydown', function(e){
    $("div").text(this.value);
});

最初ではなく、2回目のキーダウンプレスでのみ起動します。

4

3 に答える 3

3

イベントが発生しているとき、keydownテキスト ボックスの値はまだ変更されていません。とにかくinputイベントを探しているようです('input keyup'後方互換性のために使用してください)。更新されたフィドル

于 2013-09-04T03:14:59.170 に答える
1

解決策を探しているかどうかはわかりませんが、代わりに使用できます:

$("#foo").on('keyup', function(e){
    $("div").text(this.value);
});
于 2013-09-04T03:15:59.090 に答える
0

イベントで本当に更新を行う必要がある場合は、keydownこのようなものから始めることができますが、これが期待どおりに機能しない多くの状況があります。e.keyCode 値を使用して多くの例外を管理する必要があります

$("#foo").on('keydown', function(e){
    var content = $("div").text();
    $("div").text(content+String.fromCharCode(e.keyCode));
    if (e.keyCode==8) { $("div").text(content.slice(0,-1)); }
});

JSFIDDLEを参照してください

于 2013-09-04T03:43:58.313 に答える