W3cubDocs

/Web APIs

UIEvent: which property

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

The UIEvent.which read-only property of the UIEvent interface returns a number that indicates which button was pressed on the mouse, or the numeric keyCode or the character code (charCode) of the key pressed on the keyboard.

Value

Value for KeyboardEvent Non-standard

For KeyboardEvent, event.which contains the numeric code for a particular key pressed, depending on whether an alphanumeric or non-alphanumeric key was pressed. Please see deprecated KeyboardEvent.charCode and KeyboardEvent.keyCode for more details.

Note: Consider KeyboardEvent.key or KeyboardEvent.code for new code.

Value for MouseEvent Non-standard

For MouseEvent, event.which is a number representing a given button:

  • 0: No button
  • 1: Left button
  • 2: Middle button (if present)
  • 3: Right button

For a mouse configured for left-handed use, the button actions are reversed. In this case, the values are read from right to left.

Note: Consider MouseEvent.button for new code.

Examples

html

<html lang="en">
  <head>
    <title>charCode/keyCode/which example</title>

    <script>
      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 onkeypress="showKeyPress(event);" onkeydown="keyDown(event);">
    <p>Please press any key.</p>
  </body>
</html>

Specifications

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
which 1 79
12–79Only supported for KeyboardEvent and MouseEvent, not all UIEvent objects.
1On mousemove events, the which property is incorrectly always set to 1.
9Only supported for KeyboardEvent and MouseEvent, not all UIEvent objects.
15
≤12.1–15Only supported for KeyboardEvent and MouseEvent, not all UIEvent objects.
1 ≤37 18
4On mousemove events, the which property is incorrectly always set to 1.
14
≤12.1–14Only supported for KeyboardEvent and MouseEvent, not all UIEvent objects.
1 1.0

See also

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/which