keydown與keyup為什么長按一個鍵,總是會顯示?我看有同學也有這個問題,但沒有好的回答,有人會嗎?下面是代碼。
<!DOCTYPE html>
<html>
<head>
? ? <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
? ? <title></title>
? ? <style>
? ? .left div,
? ? .right div {
? ? ? ? width: 500px;
? ? ? ? height: 50px;
? ? ? ? padding: 5px;
? ? ? ? margin: 5px;
? ? ? ? float: left;
? ? ? ? border: 1px solid #ccc;
? ? }
? ??
? ? .left div {
? ? ? ? background: #bbffaa;
? ? }
? ? em{
? ? ? ? font-weight: 900;
? ? ? ? color: red;
? ? }
? ? </style>
? ?<script src="http://www.xianlaiwan.cn/static/lib/jquery/1.9.1/jquery.js"></script>
</head>
<body>
? ? <h2>keydown()與keyup()事件</h2>
? ? <div class="left">
? ? ? ? <h4>測試一</h4>
? ? ? ? <div class="aaron">監聽keydown輸入:
? ? ? ? ? ? <input class="target1" type="text" value="" /><br />
? ? ? ? ? ? 按下顯示輸入的值:<em></em>
? ? ? ? </div>
? ? ? ? <h4>測試二</h4>
? ? ? ? <div class="aaron">監聽keyup輸入:
? ? ? ? ? ? <input class="target2" type="text" value="" /><br />
? ? ? ? ? ? 松手顯示輸入的值:<em></em>
? ? ? ? </div>
? ? </div>
? ? <script type="text/javascript">
? ? //監聽鍵盤按鍵
? ? //獲取輸入的值
? ? $('.target1').keydown(function(e) {
? ? ? ? $("em:first").text(e.target.value)
? ? });
? ? //監聽鍵盤按鍵
? ? //獲取輸入的值
? ? $('.target2').keyup(function(e) {
? ? ? ? $("em:last").text(e.target.value)
? ? });
? ? </script>
</body>
</html>
2019-02-11
keydown事件觸發在文字還沒敲進文本框,這時如果在keydown事件中輸出文本框中的文本,得到的是觸發鍵盤事件前的文本,而keyup事件觸發時整個鍵盤事件的操作已經完成,獲得的是觸發鍵盤事件后的文本
2018-10-12
我這里keyup長按不松不會觸發顯示
2018-06-03
W3C的標準,按下鍵不松會一直觸發keydown事件。
2018-06-02
keydown方法中長按會跟隨按下的顯示,這屬于按下的方法的正常顯示。keyup則是等你長按之后松開鍵盤才會顯示出來
2018-05-28
個人認為是電腦鍵盤的構造問題,監控的是鍵盤按下時產生輸入信號或者輸入信號截斷的電位變化