2012-04-25 14 views
1

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

     } 
    }); 

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

答えて

1

キューを使用できます。

jquery docs

例の例を参照してくださいは非常に明確です。

+0

こんにちはウィリアム、私は別の機能の後に別のキーダウンにバインドされたkeydownにバインドされた関数をキューに入れることができません。 – user1317417

関連する問題