I'm building a virtual keyboard in jQuery, using keycode events to tigger an append, but keycode combinations are throwing me for a loop. Here's an example:
I want to append a questionmark only when both the SHIFT key (keycode 16) and slash key (keycode 191) are pressed together. I thought the && operator would help, but this only appends the slash:
$(document).keydown(function(e) {
if (e.keyCode == 16 && e.keyCode == 188 ) {
$('#mydiv').append('<span>?</span>');
}
});
Any suggestions or idea why && isn't working, and what might work? Thanks!
try this
Checking
e.keyCode == 16 && e.keyCode == 188
won't do anything useful becausee.keyCode
won't be both 16 and 188 at the same time. The&&
operator is a logical conjunction so it evaluates to true if the expressions on both sides of it are true.I think you want to look at
e.shiftKey
; if that's true then the Shift key is down, ife.shiftKey
is false then Shift is not down:Because each key creates its own keydown event, it will never be possible for
keyCode
to equal both 16 and 188.Luckily the SHIFT state is stored in
event.shiftKey
:)