.keyCode与.which
我以为可以在Stack Overflow的某处得到答案,但是我找不到它。
如果我正在监听按键事件,是否应该使用.keyCode
或.which
确定是否按下Enter键?
我一直都做以下事情:
$("#someid").keypress(function(e) { if (e.keyCode === 13) {
e.preventDefault();
// do something
}
});
但是我看到的示例使用.which
而不是.keyCode
。有什么不同?一个跨浏览器比另一个更友好吗?
回答:
注:下面的答案写于2010年在这里很多年以后,无论是keyCode
和which
赞成不赞成使用key(对于逻辑密钥)和code(对于关键的物理位置)。但是请注意,IE不支持code,并且它对key
规范的支持是基于较早版本的规范,因此不太正确。在我撰写本文时,当前基于EdgeHTML
和Chakra
的Edge
均不支持code
,但Microsoft正在为其Edge推出基于Blink和V8的替代产品,据推测可以/将会这样做。
有些浏览器使用keyCode
,有些使用which
。
如果你使用的是jQuery,则可以可靠地使用whichjQuery 标准化事物;这里更多。
如果你不使用jQuery,则可以执行以下操作:
var key = 'which' in e ? e.which : e.keyCode;
或者:
var key = e.which || e.keyCode || 0;
......它处理的可能性,e.which可能是0(通过恢复0到了最后,使用JavaScript的好奇,强大的||运营商)。
以上是 .keyCode与.which 的全部内容, 来源链接: utcz.com/qa/410717.html