次のサンプル コードは、ボタンを押している間、'keydown' メッセージを何度も出力します。ドキュメントによると、ボタンを 1 回押すとキーダウン イベントが 1 回発生します。したがって、keydown イベントは、次の例の keypress イベントのように機能します。
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title></title>
<script type='text/javascript' src='jquery.js'></script>
<script type='text/javascript'>
function onLoad()
{
$( '#text' ).on( 'keydown', function() { console.info( 'keydown' ) } );
}
</script>
</head>
<body onload='onLoad()'>
<input type='text' id='text'>
</body>
</html>
Windows、Firefox 19.0.2、Google Chrome 25.0.1364.152 でテストしました。また、フィドルを作成しました(問題は再現できます)。問題が再現される JQuery のバージョン: 1.8.2、1.9.1。
アップデート。
問題に気付きました: JavaScript でキーダウン イベントの自動繰り返しを回避するにはどうすればよいですか? .