为什么keydown会触发但keyup不是?

时间:2013-11-12 16:28:04

标签: javascript jquery

$(document).on('keydown', function(e) {
     if (e.shiftKey) {
          $('body').append('test1');
     }
});
$(document).on('keyup', function(e) {
     if (e.shiftKey) {
          $('body').append('test');
     }
});

keyup永远不会触发我,但keydown确实如此,为什么会这样?

2 个答案:

答案 0 :(得分:4)

event.shiftKey始终在关键字上返回false

检查keyCode === 16代替(键盘上的shift键代码):

$(document).on('keydown', function(e) {
     if (e.shiftKey) {
          $('body').append('test1');
     }
}).on('keyup', function(e) {
     if (e.keyCode === 16) {
          $('body').append('test');
     }
});

演示:http://jsfiddle.net/maniator/eyX5N/

答案 1 :(得分:2)

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