53 javascript jquery
为什么人们会写出类似的陈述
e.keyCode ? e.keyCode : e.charCode
Run Code Online (Sandbox Code Playgroud)
有些人也用 e.which
有人可以解释一下吗?
Tim*_*own 98
始终如一地处理关键事件并非易事.
首先,有两种不同类型的代码:键盘代码(表示用户按下的键盘上的键的数字)和字符代码(表示Unicode字符的数字).您只能在keypress事件中可靠地获取字符代码.不要试图获取字符代码keyup和keydown事件.
其次,您可以在keypress事件中获得不同的值集,以及您在事件keyup或keydown事件中获得的值.
我推荐此页面作为有用的资源.作为总结:
如果您对检测用户键入字符感兴趣,请使用该keypress事件.IE奇怪地只存储字符代码,keyCode而所有其他浏览器都存储它which.一些(但不是全部)浏览器也将其存储在charCode和/或中keyCode.一个示例按键处理程序:
function(evt) {
evt = evt || window.event;
var charCode = evt.which || evt.keyCode;
var charStr = String.fromCharCode(charCode);
alert(charStr);
}
Run Code Online (Sandbox Code Playgroud)
如果您对检测不可打印的键(例如光标键)感兴趣,请使用该keydown事件.这里keyCode总是使用的属性.请注意,keyup事件具有相同的属性.
function(evt) {
evt = evt || window.event;
var keyCode = evt.keyCode;
// Check for left arrow key
if (keyCode == 37) {
alert("Left arrow");
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个条件声明.
如果浏览器支持e.keyCode,则使用e.keyCode else e.charCode.
它类似于
var code = event.keyCode || event.charCode
Run Code Online (Sandbox Code Playgroud)
event.keyCode:返回按键事件中的非字符键的Unicode值或任何其他类型的键盘事件中的任何键.
event.charCode:返回按键事件期间按下的字符键的Unicode值.
好的,这里是解释。
e.keyCode-用于获取代表键盘上键的数字
e.charCode-一个数字,代表键盘上按键的unicode字符
e.which-(特定于jQuery)是jQuery中引入的属性(请勿在纯JavaScript中使用)
以下是获取keyCode和charCode的代码段
<script>
// get key code
function getKey(event) {
event = event || window.event;
var keyCode = event.which || event.keyCode;
alert(keyCode);
}
// get char code
function getChar(event) {
event = event || window.event;
var keyCode = event.which || event.keyCode;
var typedChar = String.fromCharCode(keyCode);
alert(typedChar);
}
</script>
Run Code Online (Sandbox Code Playgroud)
在JavaScript中获取keyCode和charCode的实时示例。
| 归档时间: |
|
| 查看次数: |
96598 次 |
| 最近记录: |