转自:http://rogerfederer.iteye.com/blog/747007
// enter 事件
$('#Qcons_1 [name=Qcon]',_root).keypress(function(event){
alert(event.keyCode+"--"+event.which);
var code = event.keyCode||event.which;
if(code==13)
$('#sal_qt_search',_root).click();
});
var code=event.keyCode;
if(event.keyCode==32){code='\' 空格\''}
if(event.keyCode==13){code='\' 回车\''}
if(event.keyCode==27){code='\' Esc\''}
if(event.keyCode==16){code='\' Shift\''}
if(event.keyCode==17){code='\' Ctrl\''}
if(event.keyCode==18){code='\' Alt\''}
firefox2.0中不支持 window.event.keyCode,
但是我们可以用event.which代替。但是为了使其能更具有普遍的兼容性,最好用event.keyCode|| event.which.
自己测试了下 现在firefox3支持event.keyCode||event.which,自己用的IE7浏览器中event.which打印的值为undefined.
但在项目中使用jQuery后两者的值都可以显示出来。
event.which
Summary
Returns the numeric keyCode of the key pressed, or the character code (charCode) for an alphanumeric key pressed.
Syntax
var keyResult = event.which;
keyResult contains the numeric code for a particular key pressed, depending on whether an alphanumeric or non-alphanumeric key was pressed. Please see charCode and keyCode for more details.
- <html>
- <head>
- <title>charCode/keyCode/which example</title>
- <script type="text/javascript">
- function showKeyPress(evt)
- {
- alert("onkeypress handler: \n"
- + "keyCode property: " + evt.keyCode + "\n"
- + "which property: " + evt.which + "\n"
- + "charCode property: " + evt.charCode + "\n"
- + "Character Key Pressed: "
- + String.fromCharCode(evt.charCode) + "\n"
- );
- }
- function keyDown(evt)
- {
- alert("onkeydown handler: \n"
- + "keyCode property: " + evt.keyCode + "\n"
- + "which property: " + evt.which + "\n"
- );
- }
- </script>
- </head>
- <body
- οnkeypress="showKeyPress(event);"
- οnkeydοwn="keyDown(event);"
- >
- <p>Please press any key.</p>
- </body>
- </html>
event是事件对象,比如你按了某个键(或者单击等,反正能触发事件的),那你在处理时候可能会需要一些信息,比如说是哪个元素被触发的,这个元素也就是你所问的event.srcElement(事件的源对象),通过它可以得到事件的对象,如果你是按键事件如keyup,keydown,那么在event.keyCode会得到这个键的ascii码,如果是鼠标事件,可能还会有当前鼠标的坐标等等,总之,这个对象里面包含了事件发生时的各种数据。