依次使用.fadeIn()

时间:2013-08-09 20:54:19

标签: jquery

我有一堆div,默认设置为display:none,我希望在延迟500ms之后逐个淡出。下面的方法效果很好,但它应该是这样吗? 如果没有更多div值为display:none

,会发生什么
function myFadeIn() {
    $(".myItems:hidden:first").fadeIn(500, function(){ myFadeIn(); });
}

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

1 个答案:

答案 0 :(得分: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/

我用eq(0)取代了“:first”选择器以获得性能(参见 jQuery :first vs. .first()),如果你对表现感到疯狂,你可以做很多其他的小rtweak(见Performance of jquery visible)。