我无法让jQuery keyup
和keydown
事件协同工作。看到这个jsFiddle:http://jsfiddle.net/CXkam/1/
这里的代码也很容易:
$(document).keyup(function (event) {
alert('Keyup');
});
$(document).keypress(function(e) {
alert('Keypress: ' + String.fromCharCode(e.which));
});
$(document).keydown(function(e) {
alert('Keydown: ' + String.fromCharCode(e.which));
});
如果您注释掉keypress()
和keydown()
处理程序,则keyup()
警报会触发。
但如果你不这样做,那么keyup()
永远不会发射。
为什么不呢?
谢谢!
答案 0 :(得分:7)
如果在对话框启动时释放密钥,则.keyup和.keypress事件将不会触发,因为密钥消息被发送到对话框,由于我对事物的理解非常有限,因此不会被视为文件的一部分。你可以做什么,如果你想看到它“工作”,按住一个键(让我们去 T !),按空格键关闭对话框,然后释放 T 键。然后将.keyup消息发送到文档并按预期进行处理。
如果你摆脱了.keydown和.keypress函数 - 或者其中的警报 - 那么.keyup就可以了。
答案 1 :(得分:5)
http://jsfiddle.net/WJsV6/在FF中尝试一下。所有3种方法实际上都是