解决Jquery中的链式回调问题

时间:2011-08-19 08:40:45

标签: jquery callback chain

我试着理解这段代码中发生的事情: (据说这是解决链式回调的一种非常有效的方法)

(function hidenext(jq){
    jq.eq(0).fadeOut("fast", function(){
        (jq=jq.slice(1)).length && hidenext(jq);
    });

})($('div#bodyContent a'))

真的很感激一些帮助!

谢谢, 来自瑞典的Freddie

1 个答案:

答案 0 :(得分:2)

来自瑞典的HallåFreddie

让我看看我是否可以为你重写它:

function hidenext(jq){
    jq.eq(0).fadeOut("fast", function(){
        jq=jq.slice(1);
        if (jq.length !== 0) {
           hidenext(jq);
        }
   });

};
hidenext($('div#bodyContent a'));

在单词中:给定一个元素列表,淡出第一个元素,当淡入淡出完成时,取出包含除第一个元素之外的所有内容的列表,如果该列表非空,则执行tail-recurse。

希望这有帮助。

来自加利福尼亚的迈克尔