【发布时间】:2013-02-24 23:31:48
【问题描述】:
当我按住一个按钮时,下一个示例代码会多次输出“keydown”消息。文档says 表示按下按钮一次,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' event works like 'keypress' event?是什么意思? -
当你按住键盘按钮时,它会为它写入的每个新字符触发一个推送事件,因为它被认为是一个新的
keypress。 -
@Sarfraz 我感谢当我按下按钮时 keydown 事件只触发一次。例如。 KeyUp 事件仅在我释放按钮时触发一次,我感谢它仅用于按下按钮的事实。
标签: javascript jquery