Следующий пример кода выводит сообщение «keydown» много раз, пока я удерживаю кнопку нажатой. Документы says показывают, что событие keydown происходит один раз для одного нажатия кнопки. Таким образом, событие keydown работает как событие нажатия клавиши в следующем примере.Почему событие «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
Когда вы удерживаете кнопку клавиатуры, он запускает событие push для каждого нового символа, который он пишет, потому что считается новым 'keypress'. – deadlock
@Sarfraz Я благодарю, что событие keydown запускается только один раз, когда я нажимаю кнопку. Например. событие KeyUp запускается только один раз, когда я отпускаю кнопку, и я благодарю, что это только факт нажатия кнопки. – sergzach