第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么這幾行js代碼,第一次觸發(fā)keypress事件,輸出的值總是為按下前的值?

為什么這幾行js代碼,第一次觸發(fā)keypress事件,輸出的值總是為按下前的值?

想要每次在輸入框輸入文字,在控制臺輸出文本框內(nèi)容。這是模仿百度搜索功能的一部分。 問題是:我輸入第一個字母,控制臺輸出的是空,然后按下第二個字母,控制臺輸出確實第一個,總是少了最后一個字符。 <input?type="text"?name="search"?id="search"?maxlength="20"?placeholder="請輸入搜索內(nèi)容"> var?search?=?document.getElementById("search"); var?keyword; search.onkeypress?=?function?()?{ keyword?=?search.value; console.log(keyword) }
查看完整描述

1 回答

已采納
?
stone310

TA貢獻361條經(jīng)驗 獲得超191個贊

因為你keypress的同時,是先執(zhí)行了keypress的事件函數(shù)(在console上顯示value),再在<input>上顯示你所按的鍵,因為這個執(zhí)行順序,每次console只能顯示按鍵之前的value;

將js改成如下,增加了一個setTimeout(function(){},0),這么寫可以改變setTimeout里面執(zhí)行語句的執(zhí)行順序,讓它在文檔穩(wěn)定后再執(zhí)行;

var?search?=?document.getElementById("search");
var?keyword;
search.onkeypress?=?function?()?{
????setTimeout(function?()?{
????????keyword?=?search.value;
????????console.log(keyword)
????},?0)
}

你也可以試下將keypress改成keyup,也相當于改變了執(zhí)行順序

查看完整回答
3 反對 回復 2016-10-02
  • 1 回答
  • 0 關(guān)注
  • 2090 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號