0
我遇到了jQuery ajax和动画的一个小问题。 我有调用我的网页,并加载时,提供了一个小动画与jQuery easing
jQuery:offset()动画和ajax
菜单布局这里是我的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');
}
});
如果用户点击,一切工作的伟大。
但如果:在同一链路
- 用户双击在几个环节
然后加载的数据超出页面。
我知道我使用异步数据的事实存在问题,并且我在精确的时间要求offset
。我试图把常量作为参数(而不是做var step_position = $(".step").offset();
),但没有奏效。
无论做多少个Ajax调用,我应该如何正确显示数据?
是的,我试过了,但用户必须等待页面加载才能点击其他任何内容。如果他错了,他必须等待:这就是我想要避免的。 – Lucas 2011-05-27 14:43:55
我最终做了非常相似的事情。我定义了一个全局变量,用于检查ajax调用是否仍在处理中。不解决我的“流体导航”问题(请参阅我以前的评论),但这样做。无论如何,如果没有人带来不同的东西,我会在几天内接受你的回答。谢谢 ! – Lucas 2011-05-27 16:42:01
如果您不希望用户等待太久,可以为JQUERY ajax调用设置超时,并且最好在服务器上稍微缩短超时。 – T9b 2011-05-30 10:17:58