如何一次设置一个键盘事件?

时间:2012-05-01 06:35:28

标签: jquery input keyboard

我在这里有这个功能

$(document).keydown(function(e){
        if (e.which == 39) {
            goRight();
        }
        if (e.which == 37) {
            goLeft();
        };
    });

我想要的是:如果我按下右箭头键或左箭头键,调用我的任何函数(goRight或goLeft),我只能在函数执行后执行其他按键操作。我想要的是类似于动画的stop()函数。因为当我非常快速地向左/向右按下时,所有的余量都会受到影响。

goRight功能就是这个

function goRight(){
                if(!$('.livin').hasClass('blog') ){
            $('#contentGeral .containerConteudo ul').stop().animate({marginLeft:'-=800'},function(){
                    removeClasses();
                    addClasses();
                });
            }
            else{
                $('#contentGeral .containerConteudo ul').stop().animate({marginLeft:'0'}, function(){
                    removeClasses();
                    addClasses();
                    });
            }
    }

goLeft是类似的。

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

尝试在其上放置一个启用布尔值?它看起来像这样:

var enable = 1;
$(document).keydown(function(e){
    if (e.which == 39) {
        if(enable == 1){
            enable = 0;
            goRight();
            enable = 1;
        }
    }
    if (e.which == 37) {
        if(enable == 1){
            enable = 0;
            goLeft();
            enable = 1;
        }
    };
});

但这只是在黑暗中拍摄的。我不确定你的问题是什么,希望有所帮助!

答案 1 :(得分:0)

方法.stop(true,true)使这项工作成功。感谢3nigma的提示。