我無法更改div的內容。我想要實現的是等待動畫結束,然後更改內容以啓動動畫以顯示新信息。這段代碼有時會起作用,這意味着它有時會掛起(isWorking永遠不會變成錯誤的,因爲動畫凍結或動畫從來沒有時間完成循環中的常量循環)。是否有一種方法可以等待動畫結束,然後改變內容? (您在下面看到的方式允許我在動畫正在進行時瀏覽新內容,這爲最終用戶節省了時間。)動畫結束時是否有方法捕捉?等待直到動畫結束,直到替換div內的數據爲止
function DesignResults(InnerHTML) {
while(isWorking){
}
$("#holder").html(InnerHTML);
ShowSearch(true);
}
var isWorking = false;
function ShowSearch(show) {
isWorking = true;
var outer = $("#outer");
var inner = $("#inner");
var height = 0;
if (show == true)
height = inner.outerHeight();
var loaderHeight
if (height > 0) {
loaderHeight = 0;
} else {
loaderHeight = 31;
}
outer.animate({
'height': height + "px"
}, 1600, function() {
$("#loading").animate({ 'height': loaderHeight + "px" }, 900, function() { });
isWorking = false;
});
}
我明白$(ELEM)。是(「:動畫」)會給我如果動畫仍然在進步,但仍然凍結一切因同時不斷循環。任何人都可以指向正確的方向嗎?編輯: 我想我被誤解了。這是我想要實現的計劃:
- 開始隱藏動畫。
- 動畫隱藏時我啓動另一個函數來獲取內容 如果我更快地獲取內容,我希望等待動畫結束,然後更改內容並再次顯示該圖層。 沒有一個問題在這裏,如果數據需要超過一秒鐘返回
我同意,在動畫完成後,如你所說,我可以做到這一點,但我已經把動畫幾乎1秒執行時間,並且該時間可用於從數據庫中提取數據。我正在尋找最有效的代碼。
使用'.stop()'()''像$( 「#加載」 ).stop()。animate()'所以它不會因爲循環而出錯 – Spokey
@ user2227904我更新了我的答案以解決您的編輯問題。 –