亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么監聽keydown實例中, 按下下一個鍵, 才會出現前一個鍵的值?

<!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>


正在回答

3 回答

順序:第一次keydown ?input的值還是空 ?而此時獲取input的結果為空 ?然后值跑到input框里 ?然后keyup

第二次?keydown ?input的值為第一次輸入的字符串 ?獲取也是第一次的 ? 然后第二次輸入的跑到input框里面 ?然后keyup

以此類推

0 回復 有任何疑惑可以回復我~

樓上正解

0 回復 有任何疑惑可以回復我~

在下一節找到的答案:?

在input元素上綁定keydown事件會發現一個問題:

每次獲取的內容都是之前輸入的,當前輸入的獲取不到

keydown事件觸發在文字還沒敲進文本框,這時如果在keydown事件中輸出文本框中的文本,得到的是觸發鍵盤事件前的文本,而keyup事件觸發時整個鍵盤事件的操作已經完成,獲得的是觸發鍵盤事件后的文本


7 回復 有任何疑惑可以回復我~
#1

LouisDuan

還是你明白
2019-04-16 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么監聽keydown實例中, 按下下一個鍵, 才會出現前一個鍵的值?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號