我知道已经回答了,但是似乎没有一个问题与我的观点完全相关。我的代码如下。我需要将变量$dynamicPanel传递给第二个函数,或者将this传递给第二个函数。无论哪种方式都是可以接受的。

在进行此操作时,有什么方法可以让我等待几秒钟来执行FirstAnimation函数,而无需再次使用animate()方法。

$(document).ready(function FirstAnimation() {
    var $dynamicPanel = $(".dynamicPanel");
    $('.dynamicPanel').animate({
        opacity: 0,
        left: '100'
    }, 5000, function () {
        alert('first animation complete');
        SecondAnimation(this);
    });
});

function SecondAnimation(this) {
    $(this).animate({
        opacity: 1
    }, 100, function () {
        alert('second animation complete');
        FirstAnimation();
    });
};

最佳答案

this是保留字,不能用作参数名称。你应该做这个:

$(document).ready(function(){
   FirstAnimation();
});

function FirstAnimation() {
   //this function doesn't change, use your code
};

function SecondAnimation(elem) {
    $(elem).animate({
        opacity: 1
    }, 100, function () {
        alert('second animation complete');
        setTimeout(function(){  //Delay FirstAnimation 7 seconds
           FirstAnimation();
        }, 7000);
    });
};

希望这可以帮助。干杯

10-02 11:45
查看更多