javascriptjqueryscrollarrow-keys

How do I prevent scrolling with arrow keys but NOT the mouse?


Since I'm using jQuery, any solution via that would work too. Ideally, I'd like to know both, though.

I already have the arrow keys bound to another function on my page (using jQuery), but having them cause the page to scroll in addition to that, causes me problems.

I may have known this at one time, but I don't remember it anymore.


Solution

  • Adding document level keypress handler does the trick!

    var ar=new Array(33,34,35,36,37,38,39,40);
    
    $(document).keydown(function(e) {
         var key = e.which;
          //console.log(key);
          //if(key==35 || key == 36 || key == 37 || key == 39)
          if($.inArray(key,ar) > -1) {
              e.preventDefault();
              return false;
          }
          return true;
    });