ajax设置offset,javascript - jQuery: offset() animation and ajax - Stack Overflow

I'm having a little problem with jQuery ajax and an animation.

I have a layout with a menu that call my page and when loaded, provide a little animation with jQuery easing

Here's my ajax.js

$(document).ready(function() {

// Ajax request

$(".transition").click(function() {

page = ( $(this).attr("id") );

$.ajax({

type: "GET",

url: page,

data: "ajax=true",

cache: false,

success: function(html) {

afficher(html);

},

error: function(XMLHttpRequest,textStatus,errorThrows) {

// Erreur durant la requête

}

});

});

function afficher(donnees) {

$(".step").empty();

$(".step").append(donnees);

// Animate

var step_position = $(".step").offset();

$(".step").offset({ top: step_position.top, left: step_position.left - 1000 });

$(".step").animate({

"left": '+=1000',

}, 750, 'easeOutBack');

}

});

If a user clicks, everything work great.

But if:

A user double clicks on the same link

A user clicks fast on several links

then the loaded data goes out of the page.

I know there's a problem with the fact that I work with asynchronous data and that I ask for the offset at a precise time. I tried to put constant as parameters (instead of doing var step_position = $(".step").offset(); ) but that didn't work.

How should I do for always displaying my data correctly, no matter how many ajax calls are made?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值