2011-06-29 59 views
3

我目前使用jquery ajax將POST數據發佈到使用該數據構建和輸出基於jQuery的圖庫的php文件。在php輸出完成後通過jquery ajax加載內容

被點擊的觸發AJAX 「鏈接」 是:

<li class="portfolioLink" id="identity">identity</li> 
<li class="portfolioLink" id="mobile">mobile</li> 
<li class="portfolioLink" id="web">web</li> 

和jquery的AJAX的樣品是:

$("#identity").click(function(){ 
    $.ajax({ 
     url: 'portfolio.php', 
     type: "POST", 
     data: ({data: 'portfolio/design/identityDesign/*'}), 
     success: function(data){ 
     $("#content_middle").html(data); 
     } 
    }); 
    $("#identity").addClass('active'); 
    $(".portfolioLink:not(#identity)").removeClass('active') 
}); 

(這jQuery是基本上重複2次以上與不同的數據:)

這工作正常,除了portfolio.php(畫廊生成器)的輸出加載到#content_middle作爲輸出的JavaScript正在處理(因此它看起來像是在#content_middle中生成的)。看到它發生可能會更有意義:www.frende.me/design.php

我想要發生的是爲畫廊加載完全構建。

回答

2

如何隱藏元素,添加新的html並再次顯示它?像這樣:

$("#identity").click(function(){  
    $.ajax({   
     url: 'portfolio.php',   
     type: "POST",   
     data: ({data: 'portfolio/design/identityDesign/*'}),   
     success: function(data){ 
      $("#content_middle").hide();  
      $("#content_middle").html(data);   
      $("#content_middle").show(); 
     }  
    });  
$("#identity").addClass('active');  
$(".portfolioLink:not(#identity)").removeClass('active') }); 
+0

@megaperiz:就是這樣!你是個天才! – jacob

+1

順便說一句,你必須有'();'在$(「#content_middle」)。show'之後'或它不起作用;) – jacob

+0

你的權利,我錯過了...謝謝 –

2

如果我理解正確,您希望在頁面加載後顯示內容。不幸的是,一旦DOM被創建,頁面就會返回。所以圖像將被視爲構造,但這並不意味着它們的src已經被加載。

嘗試使用圖像預加載這樣one

希望這會有所幫助,如果你需要更多的細節,否則發表評論。

+0

哦很酷。我認爲preloader可能會爲我做。 但要澄清,該問題並不是真的,圖像尚未加載,這是因爲內容被加載,正在應用css和javascript,我希望它加載的CSS和JavaScript已經完成。 謝謝! – jacob

+0

@megaperiz實際上發佈瞭如何做我的要求,但我想我會使用你的解決方案的組合。感謝你們倆! – jacob