2016-06-15 24 views
0

別のスタックオーバーフローポストからthis answerを使用して、fadeInメソッドを使用して複数の要素を一度に1つずつフェードインさせ、逆順でfadeOutを使用してフェードアウトさせました。jQueryオブジェクトの引数として別の関数に渡された関数を呼び出す

$("#container").children().each(function(index) { 
    $(this).delay(400 * index).fadeIn(300); 
}); 

Iコードを使用することになるので、複数回の異なるアニメーションで、IはjQueryオブジェクトとして渡される行うため、遅延やアニメーションを反復処理する機能、に入れて:例えば、fadeInを使用して引数:私は今、これがために動作しません気付きました

animateOneByOne($("#introelements").children(), 400, function() { fadeIn(300); }); 

function animateOneByOne(elements, delay, animation) { 
    elements.each(function(index) { 
     $(this).delay(delay*index).animation(); 
    }); 
} 

のようなものを使用して呼ばれます$(...).delay(...)オブジェクトにはanimation関数がありません。

このコードを関数に入れていいですか?

答えて

0

私は、パラメータとして単一の要素を持っているの引数として渡された関数を変更する簡単な解決策、見つかった質問書き込み中:

ような何か使用して呼び出さ
function animateOneByOne(elements, delay, animation) { 
    elements.each(function(index) { 
     animation($(this).delay(delay * index)); 
    }); 
} 

animateOneByOne($("#introelements").children(), 400, function(element) { element.fadeIn(300); }); 

(他の誰かが同様の問題を抱えている場合や、より良い解決策がある場合に備えて、私はこれを投稿しました)

関連する問題