1

链接在 jQuery 中很棒,但它链接每个事件的触发器,而不是等待前一个事件完成。这主要在制作动画时很明显。

因此,我看到的解决方法是使用回调函数。唯一的缺点是,如果您有 4 个想要连续制作动画的东西。

诚然,这可能是您不想经常做的事情,但是当您这样做时,标记似乎有点冗长。示例(伪代码):

element.animate(fast, callBackFunction1(element1,element2,element3);

function callBackFunction1(element1,element2,element3){
    element1.animate(fast, callBackFunction2(element2,element3));
};

function callBackFunction2(element2,element3){
    element2.animate(fast, callBackFunction3(element3));
};

function callBackFunction3(element3){
    element3.animate(fast);
};

在那种情况下,这是最好/最简洁的处理方式吗?

4

2 回答 2

5

尝试以下.. :)

element.animate(fast, function() {
    element1.animate(fast, function() {
        element2.animate(fast, function() {
            element3.animate(fast);
        });
    });
});
于 2009-10-27T21:10:23.437 回答
1
var animElements = [
    element,
    element1,
    element2,
    element3,
];

function animateChain(elements) {
    if(elements.length > 0) {
        var element = elements.pop();
        element.animate("fast", function(){ animateChain(elements); });
    }
}

animateChain(animElements);
于 2009-10-28T01:33:07.093 回答