我在使用jQuery方法.addClass().removeClass时遇到问题

JsFiddle:http://jsfiddle.net/HEM7Q/4/

$(document).ready(function () {
  $(".button").click(function(e) {
  $(".position1").animate({left:"400px"},2000, function(e){
     $(".position1").addClass("position2").removeClass("position1");
     })
  });
});


看到,最初的css.left是20 px(因为它在类.position1中定义)。现在,我为div设置动画,直到其左侧变为400px。动画完成后,我添加了class position2(其中左侧是50px),然后删除了position1。

因此,在动画完成后,div是否不应该回到左== 50像素?
为什么没有发生,正确的代码是什么?

最佳答案

我会说animate方法正在修改内联样式以获取所需的效果,即使在动画完成时(除非您主动还原),该效果仍然存在(这要优先于定义的样式类)。

10-06 04:17