Use e.which for Keyboard Events

I did not realize that there are browser compatitbility issues in dealing with keyboard events (e.keyCode and e.charCode). So jQuery handles it with e.which. Here's a snippet from their documentation:

The event.which property normalizes event.keyCode and event.charCode. It is recommended to watch event.which for keyboard key input.

event.which also normalizes button presses (mousedown and mouseupevents), reporting 1 for left button, 2 for middle, and 3 for right. Use event.which instead of event.button.