私の関数の実行パスが異なり、1つまたは複数のjQueryメソッドが呼び出される可能性があります。これらのアニメーションは同時に開始する必要があり、シリアル化しないでください。たとえば、次のように2 jQueryアニメーションの完全なコールバックをグループ化するには?
function moveDown()
{
busy = true;
if(some condition)
{
$(".selFrame").animate({top: $("#row" + currentSelRowIndex).offset().top});
}
else
{
$(".container").animate({scrollTop: $("#row" + currentRowIndex).offset().top - $("#row0").offset().top});
$(".selFrame").animate({top: ($(".selFrame").offset().top + ch - remaining)});
}
}
すべてのアニメーションが終了したかどうか、いくつかのbusy
変数を使用して検出されていない私の目標は、我々が行ってきましたexacution経路を通ってどんなに。 1つのアニメーションコールでアニメーションcomplete
の変数busy
をリセットするのは簡単です。しかし、2つ以上のアニメーションを1つのイベントに結合する方法がわかりません。busy
変数をリセットして、すべてのアニメーションが完了するようにします。
UPDATE
残念ながらフィルタリングソリューションは、徹底的なテスト後に良好な結果が得られたしませんでした。
それがない場合よりもはるかに優れた作品document.addEventListener('keydown', function(e) {
var runningAnimations = $(".container, .selFrame").filter(":animated").length;
if(runningAnimations == 0)
{
switch(e.keyCode)
{
case 40:
moveDown();
break;
、時には、再入学を許可するダブルアニメーション例に。
promise
で2番目の方法を試してみます。
これはメソッドは 'filter'と比較してはるかに安定していることがわかります。 – Pablo