次のサンプルコードは、ボタンを押したまま「keydown」メッセージを何度も出力します。文書saysでは、ボタンの1回の押下でkeydownイベントが1回発生します。したがって、keydownイベントは、次の例のkeypressイベントのように機能します。なぜ '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でテストしました。また、fiddleを作成しました(問題を再現できます)。問題が再現されるJQueryバージョン:1.8.2、1.9.1。
更新。
私は問題を実現しました:How can I avoid autorepeated keydown events in JavaScript?。
'' keydown 'イベントは' keypress 'イベントのように機能しますか?' – Sarfraz
キーボードボタンを押すと、新しい 'keypress'とみなされるため、新しい文字が書き込まれるたびにプッシュイベントが発生します。 – deadlock
@Sarfrazボタンを押すとkeydownイベントが1回だけ発生することに感謝します。例えば。 KeyUpイベントは、ボタンを放すと1回だけ発生し、ボタンを押すだけの事実に感謝します。 – sergzach