<!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://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.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>
顺序:第一次keydown input的值还是空 而此时获取input的结果为空 然后值跑到input框里 然后keyup
第二次 keydown input的值为第一次输入的字符串 获取也是第一次的 然后第二次输入的跑到input框里面 然后keyup
以此类推
楼上正解
在下一节找到的答案:
在input元素上绑定keydown事件会发现一个问题:
每次获取的内容都是之前输入的,当前输入的获取不到
keydown事件触发在文字还没敲进文本框,这时如果在keydown事件中输出文本框中的文本,得到的是触发键盘事件前的文本,而keyup事件触发时整个键盘事件的操作已经完成,获得的是触发键盘事件后的文本