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