jQuery中的键盘导航:两次按下而不是一次



我的页面上有一个键盘导航,允许在".layout"类之间导航。问题是,在页面第一次开始后,需要按两次"向下"箭头键来触发页面的移动。怎么了?

按键盘上的"向上"one_answers"向下"可查看:http://jsfiddle.net/Xroad/LPvS9/4/

附言:我必须保留"#page",而不是的"html,body"

$(function(){
    var  positions = []
    $('.layout').each(function(){
       positions.push(parseInt($(this).offset().top));
    })
    console.log(positions)
    var count=-1
    var x=positions.length-1    
    $(window).keydown(function (event) {
        switch (event.keyCode) {
        case 38:
            if(count>=x*(-1)&&count!==0){   
                count--
                console.log(count)
                $('#page').stop().animate({scrollTop:positions[count]},700);
                }else{event.preventDefault()}
            break;
        case 40:
            if(count<=x){
                count++
                console.log(count)
                $('#page').stop().animate({scrollTop:positions[count]},700);
                }else{event.preventDefault()}
            break;
        }
     });
});

初始化

var count=-1

宁愿做

var count=0

最新更新