jQuery Event.which 属性

which属性用于返回触发当前事件时按下的键盘按键或鼠标按钮编码

对于键盘和鼠标事件,该属性用于肯定你按下的是哪个键盘按键或鼠标按钮。spa

which属性对DOM原生的event.keyCodeevent.charCode进行了标准化。3d

适用的事件类型主要有键盘事件:keypress、keydown、keyup,以及鼠标事件:mouseup、mousedown。code

该属性属于jQuery的Event对象(实例)。对象

语法

jQuery 1.1.3 新增该属性。blog

eventObject.which

返回值

which属性的返回值是Number类型,返回触发当前事件时按下的键盘按键或鼠标按钮。事件

mousedown、mouseup事件中,event.which属性返回的是对应鼠标按钮的映射代码值(至关于event.button)。如下是主要的鼠标按钮映射代码对应表。ip

keypress事件中,event.which属性返回的是输入的字符的Unicode值(至关于event.charCode)。如下是经常使用的字符Unicode代码对应表。更多字符的Unicode代码,请参见完整的ASCII编码表(Unicode兼容ASCII)。文档

keydown、keyup事件中,event.which属性返回的是对应按键的映射代码值(至关于event.keyCode)。如下是经常使用的键盘按键映射代码的对应表:get

示例&说明

请参考下面这段HTML代码:

<div id="msg"></div>

event.which属性相关的jQuery示例代码以下(其中表单验证部分的代码仅做简单的非空验证):

// 为当前文档绑定keydown和mousedown两种事件
// 检测鼠标按下了那些键
// 检测键盘按下了那些字母按键
$(document).bind("keydown mousedown", function(event){
    var msg = '';
    if( event.type == "mousedown" ){ // 鼠标按下事件
        var map = {"1": "", "2":"", "3":""};
        msg = '你按下了鼠标[' + map[event.which] + ']键';
    }else{ // 键盘按下事件
        if(event.which >= 65 && event.which <= 90){
            msg = '你按下了键盘[' + String.fromCharCode(event.which) + ']键';
        }
    }
    if(msg){
        $("#msg").prepend( msg + '<br>');
    }
});
相关文章
相关标签/搜索