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()
}
});
アニメーションが完了するまで、他の機能を無効にしたり、キー押下をバインド解除/バインドしたりする方法はありますか?