使用jQuery,当我绑定到按键事件时,如何找出按下了哪个键?
$('#searchbox input').bind('keypress', function(e) {});
Run Code Online (Sandbox Code Playgroud)
我想在ENTER按下时触发提交.
[更新]
即使我发现(或者更好:一个)自己回答,似乎还有一些变异的空间;)
有没有之间的差异keyCode
和which
-尤其是如果我只是在寻找ENTER,这永远不会是一个unicode关键?
有些浏览器提供一个属性而其他浏览器提供另一个属性吗?
我有两个功能.当按下enter时,功能正常运行,但是当按下escape时它不会.转义键的正确数字是多少?
$(document).keypress(function(e) {
if (e.which == 13) $('.save').click(); // enter (works as expected)
if (e.which == 27) $('.cancel').click(); // esc (does not work)
});
Run Code Online (Sandbox Code Playgroud) 所以我看到一些关于不同浏览器报告不同keyCodes的论坛帖子,但每个人似乎都避免"为什么?".
我试图捕获冒号(:) keyCode,并意识到Firefox报告回e.keyCode 56.虽然Chrome报告回186(我认为这就是它).
是否有一种在所有浏览器中获得正确keyCode的通用方法?
如果它们是相同的键,它们为什么不同?
我会更加好奇是否有一种获得相同按键的国际方式.
谢谢.
这是我的代码:
$button.on('keyup', function (event) {
// Detect an Enter keypress
if(event.keyCode === 13) {
doStuff();
}
});
Run Code Online (Sandbox Code Playgroud)
如您所见,键码13
是硬编码的.是否有(跨浏览器)方式以更具语义意义的方式删除该数字?