为什么这个jQuery动画循环不起作用?

时间:2013-08-12 10:13:06

标签: javascript jquery loops jquery-animate

<script>
function swim() {

    $("#ship").animate({left: "-=-540px"}, 3000, function() {

        $("#ship").css("-moz-transform", "scaleX(-1)");
        $("#ship").css("-o-transform", "scaleX(-1)");
        $("#ship").css("-webkit-transform", "scaleX(-1)");
        $("#ship").css("transform", "scaleX(-1)");
        $("#ship").css("filter", "FlipH");
        $("#ship").css("-ms-filter", "FlipH");
        $("#ship").animate({left: "-=540px"}, 3000);
        swim();

        })

    }


    swim();

</script>

当我仅使用document.ready时工作正常,但在尝试将其转为循环后停止。某处肯定存在语法错误,但我无法弄清楚在哪里。

编辑:nvm。将脚本放到<head>而不是<body>

1 个答案:

答案 0 :(得分:1)

有一个原因需要文档就绪的包装器。 “正常”功能并不等同于它。如果在DOM准备好之前调用该函数,则#ship选择器与任何内容都不匹配,动画不会运行,并且不会执行回调。

在文档就绪事件中调用该函数:

$( swim );