javascript – 为什么jQuery .animate回调发生在动画之前?

前端之家收集整理的这篇文章主要介绍了javascript – 为什么jQuery .animate回调发生在动画之前?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为什么在动画之前会发生这个.animate函数的回调?

参见:http://jsfiddle.net/93Qyq/7/

这是Javascript部分:

$('#clickButton').click(function() {
  $('.spanClass').animate({
    left: '+=200'
  },500,positionReset());
});

function positionReset(){
    alert('complete!');
   $('.spanClass').animate({'left':'-=200'})
}

这是HTML:

<div class="divClass">
<span id="a" class="spanClass">A</span>
<span id="b" class="spanClass">B</span>
<span id="c" class="spanClass">C</span>
</div>
<br>
<div id="clickButton">CLICK BUTTON</div><br>​

解决方法

那是因为你没有将你的函数传递给animate() – 你正在调用它,并传递它返回的值(这不是一个函数,随后被框架忽略).

您必须在函数删除括号:

$('.spanClass').animate({
    left: '+=200'
},positionReset);  // No parentheses.

代替:

$('.spanClass').animate({
    left: '+=200'
},positionReset());

猜你在找的jQuery相关文章