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

标签 javascript jquery 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'
}, 500, positionReset);  // No parentheses.

代替:

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

关于javascript - 为什么 jQuery .animate 回调发生在动画之前?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13013435/

相关文章:

JavaScript 修改对象数组并更改包含的数据

javascript - 检测由 slider 控制的 &lt;input&gt; 字段的变化

javascript - ImageUtils.loadTexture 与 Canvas 渲染器中的回调

javascript - 单击时切换和高度调整

javascript - 使用函数返回获取值

javascript - 单击另一个 div 时显示隐藏的 div

javascript - 在页面加载时动画对象,但仍然能够随着悬停而改变

Jquery 工具提示动画

javascript - 访问另一个函数中全局定义变量的函数中的数据集

javascript - 如何从以下原型(prototype)创建动画工具