2013-08-12 4 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 не работает?

EDIT: nvm. Это был случай, когда сценарий был установлен в <head> вместо <body>.

+1

если 'функции() {}' Вы можете использовать 'this' INSEAD повторить запрос. – M1K1O

+0

Отсутствует точка с запятой в конце строки $ ("# ship") ..... что я не думаю, что это может быть причиной. –

ответ

1

Существует причина, по которой ему нужна документальная упаковка. «Нормальная» функция не является равной заменой для нее. Если вы вызовете функцию до того, как DOM будет готов, селектор #ship ничего не будет соответствовать, анимация не будет запущена, а обратный вызов не будет выполнен.

Вызов функции в документе готового события:

$(swim); 
Смежные вопросы