I would like to catch a click event with jQuery and be able to tell if a key was pressed at the same time so I can fork within the callback function based on the keypress event.
For example:
$("button").click(function() {
if([KEYPRESSED WHILE CLICKED]) {
// Do something...
} else {
// Do something different...
}
});
Is this possible at all or how can it be done if it is possible?
You can easily detect the shift, alt and control keys from the event properties;
See quirksmode for more properties. If you want to detect other keys, see cletus's answer.
You need to separately track the key status using
keydown()
andkeyup()
:See the list of key codes. Now you can check that:
I was able to use it with JavaScript alone
Without stealing @Arun Prasad's thunder, here is a pure JS snippet I rehashed to stop the default action, which would otherwise open a new window if CTL+click is pressed.