2013-01-02 47 views
0

在我的網站加載http://boxcomp.111mb.de/luxus/html9隱藏的東西,而通過jQuery不工作propper

即時通訊使用jQuery隱藏內容,直到其加載和褪色它時,其加載。這樣看起來更乾淨,更平滑。我用AJAX加載內容。問題是,它不能正常工作。當連接速度很慢時,內容會在加載之前出現。不應該是這種情況。這裏是一個使用,即時通訊代碼:

<script> 
$(document).ready(function() { 
    $('#home').click(function() { 
     $('#content-shown , #pics').animate({opacity: 0}, 250, function() { 
      $('.content-loading').fadeIn(250, function() { 
       $('#navigation_all , #content-shown').css("height", "1500px"); 
       $('#pics').load('content.html #home-bild').animate({opacity: 1}, 250); 
       $('#content-shown').load('content.html #home', function() { 
        $('.content-loading').fadeOut(250, function() { 
         $('#content-shown').animate({opacity: 1}, 250); 
        }); 
       }); 
      }); 
     }); 
    }); 
});​ 
</script> 

被點擊的對象時,我淡出的實際內容,淡入「請等待」文本(.loading),而正在加載的內容(但不可見),然後當加載內容時,.loading會淡出,內容會淡入,但有時會在所有內容完全加載之前消失。

我怎樣才能確保它在裝載時褪色?

謝謝!

+0

您是否嘗試使用的window.onload =函數(){...} ... –

+0

是不是有一種方法可以添加一個函數,在完成之前停止執行下一個函數?這可能會解決問題... – user1836966

回答

0

我唯一看到的是,在這條線:

$('#pics').load('content.html #home-bild').animate({opacity:1},250); 

您可能需要將animate功能移動到負載的回調函數,而不僅僅是鏈接它。例如:

$('#pics').load('content.html #home-bild', function(){ 
    $('#pics').animate({opacity:1},250) 
}); 

,或者使用opacity:'show'代替:

$('#pics').load('content.html #home-bild', function(){ 
     $('#pics').animate({opacity:'show'},250) 
    }); 
+0

這不是問題。我有兩個裝有新內容的div。第一個是#pics,第二個是#content-shown。 #content-shown也有描述的問題,並且動畫的代碼在回調函數中,正如您所說的。 – user1836966

+0

@ user1836966在執行下一個之前等待一個呢?您可以使用'complete'將回調函數添加到'animate'中,該函數將啓動下一次加載(http://api.jquery.com/animate/) – Ulises