2013-08-12 88 views
0
<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工作正常,但尝试将其转换为循环后停止。一定有一个语法错误的地方,但我不知道在哪里。为什么这个jQuery动画循环不起作用?

编辑:nvm。这是将脚本放在<head>而不是<body>的情况。

+1

如果'函数(){}'你可以使用'重复查询的this' INSEAD。 – M1K1O

+0

缺少以$(“#ship”)....语句结尾的分号。我不认为这可能是原因。 –

回答

1

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

呼叫在文档准备事件功能:

$(swim);