1

我需要在以下递归完成后运行回调:

function fade_day_div() { 
    $("div#day").first().fadeIn("slow", function showNext() {
        $(this).next("#day").fadeIn("fast", showNext);
    });
};

我可以在这里使用延迟对象吗?

4

2 回答 2

2

promise().done() 可能是这里的诀窍(尽管我不确定递归)。

function fade_day_div() { 
    $("div#day").first().fadeIn("slow", function showNext() {
        $(this).next("#day").fadeIn("fast", showNext).promise().done(function(){
               //Callback code here
        });
    });
};

可能有效,也可能无效。取决于它在递归中的嵌套程度。

于 2013-06-11T16:47:14.573 回答
1

不需要在这里使用延迟对象,只是这样:

function fade_day_div() { 
  $("div#day").first().fadeIn("slow", function showNext() {
     var $next = $(this).next("#day");
     if($next.length > 0) {
         $next.fadeIn("fast", showNext);
     } else {
         ... your callback here ...
     }
  });
};
于 2013-06-11T16:37:58.030 回答