[英]Javascript keyup / onkeyup wrong element
有人有同樣的問題嗎? 當快速鍵入文本框並跳到下一個文本框(通過按“tab”鍵)時,將從錯誤的元素注冊keyup事件。
行為:
預期的最終情況:
- 所有按下的字符都在第一個文本框中呈現,第二個文本框被選中(但為空); Javascript:只從最后一個元素注冊最后一個('tab'鍵盤事件)。
(這個問題在普通的javascript中,但也傳播到jQuery onkeyup事件)
在瀏覽器中測試: - Chrome(版本49.0.2623.87 m(64位)) - FireFox(45.0.1) - Edge
JSFiddle: https ://jsfiddle.net/xk09542f/4/
JS:
document.getElementById('inp1').onkeyup = function(e) {
console.log(this.id + ' ' + e.which);
}
document.getElementById('inp2').onkeyup = function(e) {
console.log(this.id + ' ' + e.which);
}
HTML:
<input id="inp1" type="text">
<input id="inp2" type="text">
輸出:見控制台;
實際上你在控制台中看到的是預期的結果,因為:當你按Tab鍵時它的句柄2事件首先是一個keyDown(這會將你移動到第二個textField),現在你在第二個textField中你仍然在keyDown事件下,因此,當您釋放Tab鍵時,它會處理您的keyUp事件,而最后一個事件發生在第二個textField上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.