3

多数の div があり、デフォルトは に設定されていますdisplay:none。500 ミリ秒の遅延後に 1 つずつフェードインしたいと考えています。以下のアプローチはうまく機能しますが、それはあるべき方法ですか? の値を持つ div がなくなったらどうなりますdisplay:noneか?

function myFadeIn() {
    $(".myItems:hidden:first").fadeIn(500, function(){ myFadeIn(); });
}

("#myButton").click(function(){
    myFadeIn();
});
4

1 に答える 1

0

関数をより汎用的にするためにいくつかの小さな変更を加えましたが、それ以外の場合はコードが機能するはずです。

function recursiveFadeIn(selector) {
    $(selector+":hidden").eq(0).fadeIn(400, function(){ 
        recursiveFadeIn(selector); 
    });
}

$("#myButton").on("click",function(e){
    recursiveFadeIn("ul > li");
});

これがjsfiddleです:http://jsfiddle.net/qNABc/1/

パフォーマンスのために「:first」セレクターを eq(0) に置き換えました (「 jQuery :first と .first() 」を参照)。また、パフォーマンスに夢中になっている場合は、他にも多くの小さな rtweak を実行できます (「Performance of 」を参照)。 jquery が表示されます)。

于 2013-08-14T22:57:29.697 に答える