Browsers implement event.which for mouse events, and many users rely on it, but it's not defined in DOM Events. There is a standard for event.button and event.buttons, but according to jQuery's source it seems like at least one browser treats event.button as event.buttons.