jQuery Анимированный обратный вызов не вызывается после анимации?
Я использую jQuery .animate()
создать бесконечную карусель. Я использовал .animate()
раньше без проблем. Однако на этот раз анимация не завершается.
Это очень простая анимация, меняющаяся 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
,
Я предполагаю, что мой главный вопрос заключается в том, что может препятствовать срабатыванию этой функции, даже если кажется, что событие завершено?
1 ответ
Решение
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");
});
});