我的jQuery代码确实有一个小问题


<script type="text/javascript">
    function AnimateCloud() {
        $("#cloudAmu").animate({
            "left": "+150%"
        }, 5000, 'linear');
        return false;
    }

    function AnimateCloud2() {
        $("#cloudAmu").animate({
            "right": "+150%"
        }, 5000, 'linear');
        return false;
    }

    $(document).ready(
        AnimateCloud().then(AnimateCloud2())
    );
</script>

你知道是什么问题吗?

最好的祝福

高迪曼

最佳答案

问题是因为您的函数返回的是 bool(boolean) 值false,而该值没有then()方法。

要将调用链接到函数,您需要从对promise的调用中返回animate()。试试这个:

function AnimateCloud() {
    return $("#cloudAmu").animate({
        "left": "+150%"
    }, 5000, 'linear').promise();
}

function AnimateCloud2() {
    return $("#cloudAmu").animate({
        "right": "+150%"
    }, 5000, 'linear').promise();
}

$(document).ready(function() {
    AnimateCloud().then(AnimateCloud2)
});

请注意,看来AnimateCloud()AnimateCloud2()包含相同的逻辑,可以进行改进。

09-28 03:31