Javascript 在设置动画之前存储定位数据

Javascript 在设置动画之前存储定位数据,javascript,jquery,jquery-animate,Javascript,Jquery,Jquery Animate,我想用jQuery的animate制作一个DIV的动画,通过ajax加载新内容,并将其动画还原到原始位置。为了在后面制作动画,我将通过数据存储左侧位置 这就是目前为止的代码: (function($){ //Transition Out $.fn.ajaxTransitionOut = function() { var origin = this.css('left'); var amount = $(window).width()*-1; retu

我想用jQuery的animate制作一个DIV的动画,通过ajax加载新内容,并将其动画还原到原始位置。为了在后面制作动画,我将通过数据存储左侧位置

这就是目前为止的代码:

(function($){
    //Transition Out
$.fn.ajaxTransitionOut = function() {
    var origin = this.css('left');      
    var amount = $(window).width()*-1;

    return $(this).data('origin',origin).stop().animate({left:amount, opacity:0}, 400);

};

})(jQuery);
第二次尝试:

(function($){
    //Transition Out
$.fn.ajaxTransitionOut = function() {
    var origin = $(this).css('left');
    $(this).data('origin',origin)       
    var amount = $(window).width()*-1;

    return $(this).data('origin',origin).stop().animate({left:amount, opacity:0}, 400);

};

})(jQuery);
问题:旧位置的存储速度太慢,并且在设置对象动画时,“原点”是一个值。任何负值

如果我延迟动画,将存储正确的值,但这不是我想要的


非常感谢您的帮助。

如果改用load,您可以在加载完成后启动函数。此外,使用ajax还可以选择before、success和complete。这是文档中的加载示例

$('#result').load('ajax/test.html', function() {
  alert('Load was performed.');
});

在添加更多数据之前,可以在DOM中插入一个空标记。给它们每个一个唯一的ID,现在你就知道文档中新数据开始的所有地方了。这似乎有点可疑。你能提供一个JSFIDLE吗?谢谢你的回答。。。我发现了。我给函数打了两次电话:-谢谢你的回答。。。我发现了。我调用了函数两次:-