2011-09-02 41 views
1

林有點麻煩,所以讓我來描述你我的情況:Ajax在容器中加載。高度問題?

我有一個網站有2個主要區域。 A帶有導航鏈接和內容顯示位置。

im使用AJAX,使得當I A鏈路這些步驟發生在點擊:新的內容被加載

1)在#main內容fadea出

2))的#main的高度改變

4)顯示新的內容。

但由於某些頁面的某些原因,#main的高度不會被適當調整。它會太短,減少內容。我注意到這隻發生在第一次,你加載頁面,這讓我覺得它是一個瀏覽器不能正確計算高度,直到所有的數據已被下載的問題。但我不明白爲什麼發生這種情況,因爲回調函數不應該啓動,直到所有的東西都被加載了,對嗎?

無論如何,繼承人的代碼。我希望你們能幫我一把。謝謝!


    $("a:not('.noajax')").live("click", function(e){ 
     e.preventDefault(); 

     //Load new page 
     var link = $(this).attr("href"); 
     loadpage(link); 
    }); 

    function loadpage(href) { 

     //Keep fixed the main container 
     var old_height = $(".outermain").innerHeight(); 
     $("#main").css({"height":(old_height)}); 

     //Fade out the interior 
     $(".outermain").fadeOut(100, function(){ 
      //Prepare interior to calculate new height 
      $(".outermain").css({"display": "block", "visibility": "hidden"}); 

      //Load new page 
      $(".outermain").load(href + " .innermain", function(){ 

       var new_height = $(".outermain").innerHeight(); 
       var rolloutspeed = 700 - (new_height/30); 

       rolloutspeed = 600; 

       $("#main").animate({"height":new_height}, rolloutspeed , "easeOutBack", function(){ 
        $(".outermain").css({"visibility": "visible", "display":"none"}).fadeIn(function(){ 
         $("body").removeClass("ajaxblocked"); 
        }); 
       }); 
      }); 
     }); 
    } 

,這是HTML:

<section id="main"> 
    <div class="outermain"> 
     <div class="innermain clearfix"> 

      ... 

     </div> 
    </div> 
</section> 

回答

0

如果請求的HTML已爲您計算新的大小之前,如果我沒有記錯的話,他們不會被下載的圖片的引用。

+1

這完全正確......我怎麼能解決這個問題? :( –