[英]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.