bind event handler on keydown listen function JavaScript jQuery

Posted by user1644123 on Stack Overflow See other posts from Stack Overflow or by user1644123
Published on 2012-10-20T22:17:48Z Indexed on 2012/10/20 23:01 UTC
Read the original article Hit count: 298

Filed under:
|
|
|
|

I am trying to bind a handler to an event. The event is a keydown function. The handler will listen for hit variables to produce one of two conditions. The 1st condition (odd number of hits) will perform 1 function, the 2nd (even number of hits) will perform another function. To elaborate, the 1st function will scroll to one element, the 2nd will scroll to another element. My syntax may be the wrong approach, but it works for the 1st condition, but not the 2nd. I think I have the conditional statement in the wrong place. How can I rewrite this to work as intended? Thank you kindly, in advance!

$(document).keydown(function(e) {
    switch (e.which) {
    case 37:
        break;
    case 38:
        break;
    case 39:
        break;
    case 40:
        //bottom arrow key
        var hits = 0;
        if (hits % 2 !== 0) {
            $('#wrap').animate({
                scrollTop: $("#scrollToHere").offset().top
            }, 2800);
        }
        else {
            $('#wrap').animate({
                scrollTop: $("#scroll2ToHere").offset().top
            }, 2800);
        }
        hits++;
        return false;
        break;
    }
})?

*I moved "var hits = 0;" to the top, but it only works! But is there a way I can reset the whole thing after every two hits? I want to reset because when there is a bug and if I press a 3rd time it scrolls to the very top of the page, where there is no element to make it scroll to the top. Why would it scroll to the top of the page if I never scripted it to do so?? *

© Stack Overflow or respective owner

Related posts about JavaScript

Related posts about jQuery