1

jQueryとswitchclass関数に問題があります。シリアルスクロール機能を使用してサイトをナビゲートし、このために矢印キーをバインドしました。クラス間でアニメーション化することにより、要素を選択/選択解除するために下矢印キーをバインドしました。ただし、私が抱えている問題は、ユーザーが下矢印を押した後、すばやく左または右を押すと、アニメーションが完了せず、スタックしてしまうことです。

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()

        }
    }); 

アニメーションが完了するまで、他の機能を無効にしたり、キー押下をバインド解除/バインドしたりする方法はありますか?

4

1 に答える 1

1

キューを使用できます。

jquery docsの例を参照してください

例は非常に明確です。

于 2012-04-25T14:46:09.330 に答える