Javascript jquery动画背景位置-首先获取当前背景位置的问题

Javascript jquery动画背景位置-首先获取当前背景位置的问题,javascript,jquery,jquery-animate,background-position,Javascript,Jquery,Jquery Animate,Background Position,当用户单击按钮时,我试图从元素的当前位置设置元素背景的动画。我可以在第一次单击时执行此操作,但随后的单击失败 这是我的密码 var testme; $(document).ready(function(){ $(".navleft").live("click", function() { testme = parseInt($(this).css("background-position").replace("% 0%", "").replace("px 0%

当用户单击按钮时,我试图从元素的当前位置设置元素背景的动画。我可以在第一次单击时执行此操作,但随后的单击失败

这是我的密码

var testme;

$(document).ready(function(){     
    $(".navleft").live("click", function() {
        testme = parseInt($(this).css("background-position").replace("% 0%", "").replace("px 0%", ""));
        $(this).parent().animate({backgroundPosition: (testme + 297) + "px"}, 500);
        $(this).parent().find("p").text(testme);
    });
});
编辑:

正如下面所建议的,除非您使用IE,在每次单击时它都会重置为0,然后再次设置动画,否则效果非常好

这是我的意思的链接

解决方案(由于被推向正确的方向):


应首先停止上一个动画,然后开始新的动画:

$(this).parent().stop(true, true).animate({backgroundPosition:...
此外,如果需要将297像素添加到当前背景位置,则无需读取当前位置,如下所示:

$(this).parent().animate({backgroundPosition: "+=297"}, 500);

这不是问题所在。。。我认为问题在于在第二次单击时设置testme变量。我认为我的替换不起作用,因为我正在尝试替换一些不存在的东西。嗯,奇怪的是,IE:-/,如果你在jsFiddler.net中模拟它,测试它会更容易。
$(this).parent().stop(true, true).animate({backgroundPosition:...
$(this).parent().animate({backgroundPosition: "+=297"}, 500);