Jquery 如何让动画在不被打断的情况下完成?

Jquery 如何让动画在不被打断的情况下完成?,jquery,Jquery,我对jQuery和switchclass函数有问题。我正在使用serialscroll功能浏览我的站点,并为此绑定了箭头键。我已经绑定了向下箭头键,通过在类之间设置动画来选择/取消选择元素。然而,我遇到的问题是,如果用户在按下向下箭头后快速按下左键或右键,动画将无法完成,并被卡住 function mainselect() { setTimeout(function() { $(".selectstyle"

我对jQuery和switchclass函数有问题。我正在使用serialscroll功能浏览我的站点,并为此绑定了箭头键。我已经绑定了向下箭头键,通过在类之间设置动画来选择/取消选择元素。然而,我遇到的问题是,如果用户在按下向下箭头后快速按下左键或右键,动画将无法完成,并被卡住

function    mainselect()
        {

        setTimeout(function()
            {

            $(".selectstyle" ).switchClass( "selectstyle", "select", 200);
            $(".select" ).switchClass( "select", "selectstyle", 200);
            $(".maincontentshrink" ).switchClass( "maincontentshrink", "maincontent", 200);
            $(".maincontent" ).switchClass( "maincontent", "maincontentshrink", 200);
            return false;
            },
            250);

        }
$(document).keydown(function(e)                     //keyboard bind 
    {
    if( e.keyCode == 39 )                       //right (->)
        {   
        setTimeout(function()
            {
    //      $(".maincontent" ).switchClass( "maincontent", "maincontent", 200 );
            $(".maincontentshrink" ).switchClass( "maincontentshrink", "maincontent", 200 );
            $(".selectstyle" ).switchClass( "selectstyle", "select", 200 );
            $pane.trigger('next');
            return false;
            },
            200);
        }
    });


$(document).keydown(function(e)
    {   
    if( e.keyCode == 37 )                       //left (<-)
        {   
        setTimeout(function()
            {
    //      $(".maincontent" ).switchClass( "maincontent", "maincontent", 200 );
            $(".maincontentshrink" ).switchClass( "maincontentshrink", "maincontent", 200 );
            $(".selectstyle" ).switchClass( "selectstyle", "select", 200 );
            $pane.trigger('prev');
            },
            200);
    }
    }); 

$(document).keydown(function(e)
    {   
    if( e.keyCode == 40 )                       //down (\/) 
        {
        mainselect()

        }
    }); 
函数mainselect()
{
setTimeout(函数()
{
$(.selectstyle”).switchClass(“selectstyle”,“select”,200);
$(“.select”).switchClass(“select”,“selectstyle”,200);
$(.maincontentshrink”).switchClass(“maincontentshrink”,“maincontent”,200);
$(.maincontent”).switchClass(“maincontent”,“maincontentshrink”,200);
返回false;
},
250);
}
$(文档).keydown(函数(e)//键盘绑定
{
如果(e.keyCode==39)//右(->)
{   
setTimeout(函数()
{
//$(.maincontent”).switchClass(“maincontent”,“maincontent”,200);
$(.maincontentshrink”).switchClass(“maincontentshrink”,“maincontent”,200);
$(.selectstyle”).switchClass(“selectstyle”,“select”,200);
$pane.trigger('next');
返回false;
},
200);
}
});
$(文档).keydown(函数(e)
{   
如果(e.keyCode==37)//left(您可以使用queue

请参见中的示例

示例非常清楚。

您可以使用队列

请参见中的示例


示例非常清楚。

嗨,William,我不确定如何将绑定到keydown的函数排在另一个单独keydown绑定的函数之后。嗨,William,我不确定如何将绑定到keydown的函数排在另一个单独keydown绑定的函数之后。