Javascript 为什么keydown触发,而keyup不触发?

Javascript 为什么keydown触发,而keyup不触发?,javascript,jquery,Javascript,Jquery,keyup从不为我触发,但keydown会触发,这是为什么?e.shiftKey在keyup事件中使用时始终返回false。。。您的事件触发,测试就失败了。event.shiftKey总是在keyup上返回false 改为检查keyCode===16(这是键向上时的换档键代码): 演示:Hmmm非常奇怪。同样的事情,严肃地说-1假设处理程序从不触发这一事实表明,您甚至没有执行最基本的调试。我不知道人们为什么会对此投票。我如何才能有效地检测到换档键何时释放?尼尔的回答,比我的回答更完整:-)我认为

keyup从不为我触发,但keydown会触发,这是为什么?

e.shiftKey
在keyup事件中使用时始终返回
false
。。。您的事件触发,测试就失败了。

event.shiftKey
总是在keyup上返回
false

改为检查
keyCode===16
(这是键向上时的换档键代码):


演示:

Hmmm非常奇怪。同样的事情,严肃地说-1假设处理程序从不触发这一事实表明,您甚至没有执行最基本的调试。我不知道人们为什么会对此投票。我如何才能有效地检测到换档键何时释放?尼尔的回答,比我的回答更完整:-)我认为这是一个特定的换档失败了,就像左换档一样。
$(document).on('keydown', function(e) {
     if (e.shiftKey) {
          $('body').append('test1');
     }
});
$(document).on('keyup', function(e) {
     if (e.shiftKey) {
          $('body').append('test');
     }
});
$(document).on('keydown', function(e) {
     if (e.shiftKey) {
          $('body').append('test1');
     }
}).on('keyup', function(e) {
     if (e.keyCode === 16) {
          $('body').append('test');
     }
});