UIEvent: which 属性

已弃用:此特性不再推荐。虽然某些浏览器可能仍然支持它,但它可能已经从相关的网络标准中删除,可能正在删除过程中,或者可能仅为兼容性目的而保留。请避免使用它,如果可能,请更新现有代码;请参阅本页底部的兼容性表格以指导您的决策。请注意,此特性可能随时停止工作。

UIEvent 接口的只读属性 UIEvent.which 返回一个数字,该数字指示鼠标按下哪个按钮,或者键盘按下哪个键(keyCodecharCode)。

KeyboardEvent 的值 非标准

对于 KeyboardEventevent.which 包含按下特定键的数字代码,具体取决于按下的是字母数字键还是非字母数字键。有关更多详细信息,请参阅已弃用的 KeyboardEvent.charCodeKeyboardEvent.keyCode

注意:对于新代码,请考虑使用 KeyboardEvent.keyKeyboardEvent.code

MouseEvent 的值 非标准

对于 MouseEventevent.which 是一个表示给定按钮的数字

  • 0:无按钮
  • 1:左键
  • 2:中键(如果存在)
  • 3:右键

对于配置为左手使用的鼠标,按钮操作是相反的。在这种情况下,值是从右到左读取的。

注意:对于新代码,请考虑使用 MouseEvent.button

示例

html
<p>Please press any key.</p>
js
function showKeyPress(evt) {
  console.log(
    `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) {
  console.log(
    `onkeydown handler:\n` +
      `keyCode property: ${evt.keyCode}\n` +
      `which property: ${evt.which}\n`,
  );
}

document.addEventListener("keypress", showKeyPress);
document.addEventListener("keydown", keyDown);

规范

规范
UI 事件
# dom-uievent-which

浏览器兼容性

另见