2012-05-31 4 views
3

Я использую jQuery .animate(), чтобы создать бесконечную карусель. Я использовал .animate() без каких-либо проблем. На этот раз анимация не заканчивается.jQuery Animate callback не вызывается после выполнения анимации?

Это очень простая анимация, меняющая margin-left на другое значение. Значение меняется, и мне кажется, что оно завершено, но функция не срабатывает.

Вот мой код:

<script type="text/javascript"> 
    $("#scrollLeft").click(function(){ 
     $("#scrollContent").animate(
     {'margin-left':'-714px'}, 
     {queue:false, duration:500}, 
     function(){ 
      alert("finishedLeft"); 
     }); 
    }); 
    $("#scrollRight").click(function(){ 
     $("#scrollContent").animate(
     {'margin-left':'-1190px'}, 
     {queue:false, duration:500}, 
     function(){ 
      alert("finishedRight"); 
     }); 
    }); 
</script> 

Область проблемой является карусель в нижней части страницы. Я бегу от jquery-1.7.1.min.js.

Я предполагаю, что мой главный вопрос: что может помешать этой функции срабатывать, хотя кажется, что событие завершено?

ответ

6

Watch your syntax.

http://jsfiddle.net/n1ck/HBCn5/

$("#scrollLeft").click(function() { 
    $("#scrollContent").animate({ 
     'margin-left': '-714px', // don't close out the parameters with parentheses yet ... 
     queue: false,   // continue adding the queue option (if needed) 
     duration: 500   // and the duration option (if needed) and close after 
    }, function() { 
     alert("finishedLeft"); 
    }); 
}); 
$("#scrollRight").click(function() { 
    $("#scrollContent").animate({ 
     'margin-left': '-1190px', // same as above 
     queue: false, 
     duration: 500 
    }, function() { 
     alert("finishedRight"); 
    }); 
});​ ​ 
+0

Ну, я чувствую себя глупо. Я мог бы поклясться, что изменения были отделены от свойств анимации. Огромное спасибо! – VictorKilo

+0

Ха-ха, не беспокойтесь. Если бы вы выбрали именно тот ответ, который был бы замечательным :) – N1ck

+1

Да, есть период ожидания, прежде чем вы сможете принять ответ. Я смотрю на обратный отсчет :) – VictorKilo