0

我这里有这个功能

$(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 是类似的。

在此先感谢您的帮助!

4

2 回答 2

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;
        }
    };
});

不过,这只是在黑暗中的一个镜头。我不确定你的问题是什么,希望对你有帮助!

于 2012-05-01T06:41:47.573 回答
0

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

于 2012-11-15T04:27:21.013 回答