【发布时间】:2012-06-19 08:40:45
【问题描述】:
jQuery 是否支持为独立编程翻译依赖于浏览器的键码?我有一些这样的代码
$("#container").delegate("input", "keyup", function(event){
if(event.which == 107){
event.preventDefault();
addSomething();
}
});
当按下+ 时,应该将一些新元素附加到我的$(document)。显然,这在 Chrome 中不起作用,因为 Chrome 的+ 的键码恰好是 187。我想,这应该是一个常见的问题,并且推测,有一种方法可以使用与 event 不同的信息已经独立于浏览器了吗?我发现,shift-key 有一个way。但这是否适用于所有键,这是否被证明适用于每个浏览器?我想到了类似的东西
...
if(event.+){ //or maybe if(event.plus){
...
【问题讨论】:
-
event.whichfor the+在我所有的浏览器(Chrome、Opera、Firefox 和 Safari)中都是 43,它与+字符的 ASCII 码匹配。 -
我使用的德语键盘看起来像this。可能是我面临更大的问题..
-
检查
event.charCode和event.keyCode中的值是否不同。显然,187 将是“右双角引号”(»),即使您的键盘布局看起来也不正确。 -
哦,你是对的!我的
keypress事件也是 43,但我的keyup事件在 Chrome 中是 187!
标签: jquery cross-browser jquery-events