我有一堆div,默认设置为display:none
,我希望在延迟500ms之后逐个淡出。下面的方法效果很好,但它应该是这样吗?
如果没有更多div值为display:none
?
function myFadeIn() {
$(".myItems:hidden:first").fadeIn(500, function(){ myFadeIn(); });
}
("#myButton").click(function(){
myFadeIn();
});
答案 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)。