2008-10-02 148 views
2

如果我使用jQuery創建了一個添加空div的函數,在由div創建的空白區域內執行一些動畫,然後刪除div,瀏覽器從不爲空div(高度並設置寬度)。在jQuery中添加和刪除內容

如果我不刪除我的函數中的空白div,那麼瀏覽器將創建所需的空間,一切工作正常。但是,當動畫完成時,我確實需要將div創建的空白空間去除。

有沒有辦法排隊的div removall,以便瀏覽器將顯示所需的行爲? ?

+0

你能提供的jQuery代碼你已經有了? – 2008-10-02 10:45:14

回答

0

,如果你使用的setTimeout不它的工作 - )

1

這樣做的jQuery和setTimeout的谷歌搜索,我發現了派我來,不同的曲目的例子。我想這個問題會發生,因爲div操作與實際動畫是分開的選擇器。這會導致即使在動畫仍然存在的情況下也會創建和刪除div。通過添加一個簡單的動畫語句到div,它將延遲刪除,直到主動畫完成後,我才能達到預期的效果。

0

問題是,DOM不會更新,直到你的函數結束。所以使用setTimeout會導致dom更新,並且在100ms之後,其餘的函數可以繼續。如果你不想看到新的div,我會將位置設置爲絕對值,並將頂部設置爲-5000。它將有尺寸等,只是不會「可見」。你也可以設置可見性(在CSS中)隱藏,只要你擔心它會出現在屏幕上。

3

一些jQuery效果有回調,這將是影響後運行,例如:

$('#someDiv').slideDown(100, function() { 
    $(this).remove(); 
});