2011-02-15 193 views
1

我有這個問題。我正在jquery ajaxed網站上工作。我有主要的內容div在中間和頂部的導航。我需要AJAX的內容,因爲我有閃光燈背景,以便在每次加載頁面後Flash視頻不會從頭開始。我能做到這一點的唯一方法就是用這種代碼:阿賈克斯div隱藏並顯示隱藏後div加載

$(document).ready(function(){ 


$.ajaxSetup ({ 
     cache: false 
     }); 

//For loading 
    var ajax_load = "<img src='img/load.gif' alt='loading...' /><p>"; 

// Var 
    var loadPage1 = "page1.html"; 

// Load page 
    $("#page1").click(function(){ 
      $("#content").hide(2000); 
      $("#content").html(ajax_load).load(loadPage1); 
      $("#content").show(2000); 
}); 

所有其他方式獲得的股利沒有工作,因爲有人讓插件等,在ajaxed DIV工作問題(內容)。

所以... everythig工作正常 - 但是,div加載它的page1.html內容,並顯示它,只有在這之後它才隱藏它並顯示它。所以它加載頁面,然後做我想要的效果。

我需要排隊這一些如何或什麼是適當的jQuery方式?我試過延遲,停止等。但似乎無法解決這個問題。這非常簡單。

謝謝。

回答

2

在加載回調處理程序中顯示元素。 即:

$("#page1").click(function(){    
    $("#content").hide();    
    $("#content").html(ajax_load).load(loadPage1, function(){ 
     $("#content").show(2000) 
    }); 
}); 
+0

我喜歡它,但如果內容載荷小於2秒? – 2011-02-15 18:17:14

+0

只有在請求完成後纔會應用該效果。因此它不會有任何影響。 – Chandu 2011-02-15 18:19:00

0

.load()需要兩個參數,URI和回調負載後觸發。 API在這裏找到:http://api.jquery.com/load/

function() { 
    $("#content").hide(2000); 
    $("#content").html(ajax_load).load(loadPage1, function() { 
     $("#content").show(2000); 
    }); 
}