which屬性用于返回觸發(fā)當(dāng)前事件時(shí)按下的鍵盤按鍵或鼠標(biāo)按鈕履肃。對(duì)于鍵盤和鼠標(biāo)事件慨飘,該屬性用于確定你按下的是哪一個(gè)鍵盤按鍵或鼠標(biāo)按鈕。
which屬性對(duì)DOM原生的event.keyCode和event.charCode進(jìn)行了標(biāo)準(zhǔn)化秆剪。
適用的事件類型主要有鍵盤事件:keypress瘫寝、keydown、keyup及汉,以及鼠標(biāo)事件:mouseup沮趣、mousedown。
該屬性屬于jQuery的Event
對(duì)象(實(shí)例)坷随。
which屬性的返回值是Number類型房铭,返回觸發(fā)當(dāng)前事件時(shí)按下的鍵盤按鍵或鼠標(biāo)按鈕。
在mousedown温眉、mouseup事件中缸匪,event.which屬性返回的是對(duì)應(yīng)鼠標(biāo)按鈕的映射代碼值(相當(dāng)于event.button)。以下是主要的鼠標(biāo)按鈕映射代碼對(duì)應(yīng)表类溢。
在keypress事件中凌蔬,event.which屬性返回的是輸入的字符的Unicode值(相當(dāng)于event.charCode)畜份。以下是常用的字符Unicode代碼對(duì)應(yīng)表浸锨。更多字符的Unicode代碼,請參見完整的ASCII編碼表(Unicode兼容ASCII)楔绞。
在keydown蛇耀、keyup事件中辩诞,event.which屬性返回的是對(duì)應(yīng)按鍵的映射代碼值(相當(dāng)于event.keyCode)。以下是常用的鍵盤按鍵映射代碼的對(duì)應(yīng)表:
示例:
// 為當(dāng)前文檔綁定keydown和mousedown兩種事件
// 檢測鼠標(biāo)按下了那些鍵
// 檢測鍵盤按下了那些字母按鍵
$(document).bind("keydown mousedown", function(event){
var msg = '';
if( event.type == "mousedown" ){ // 鼠標(biāo)按下事件
var map = {"1": "左", "2":"中", "3":"右"};
msg = '你按下了鼠標(biāo)[' + map[event.which] + ']鍵';
}else{ // 鍵盤按下事件
if(event.which >= 65 && event.which <= 90){
msg = '你按下了鍵盤[' + String.fromCharCode(event.which) + ']鍵';
}
}
if(msg){
$("#msg").prepend( msg + '<br>');
}
});