2010-04-06 26 views
1

我想在頁面加載過程中關閉手風琴動畫,然後在加載頁面後將其重新打開。僅在頁面加載期間關閉Jquery UI手風琴動畫

基本上我在手風琴部分裏面有多個表單,當提交時頁面被重新加載並且相關部分被重新加載。但在重新加載期間,動畫被觸發,看起來有點難看。但是當頁面沒有被加載時,我喜歡它。

我該如何達到這個效果?

回答

3

回答我自己的問題。以下工作。

我發現的是,在創建手風琴對象時,首先不定義動畫。 然後,選擇要在加載時顯示的部分。在我的情況下,我的Kohana控制器 從前一個表單提交設置的會話變量中檢索。然後它被傳遞到包含此代碼的模板中。

完成後,將動畫設置設置爲幻燈片,然後全部從此處開始。

$(function(){ 
     /* Create the accordion object first */ 
     $("#accordion").accordion({ animated: false, header: "h3", autoHeight: false, clearstyle: true, collapsible: true }) 

     /* get the section to load. This is set by the previous form submission and saved to a session variable. */ 
     var id = <?php echo $sectionId; ?>; 

     /* activate on sectionId=0 causes it to close (which is by design) this gets around it */ 
     if (id != 0) { 
     $("#accordion").accordion("activate", id); 
     } 

     $("#accordion").accordion("option", {animated: "slide" }); 

    }); 
0

如果頁面在提交後重新加載,那麼整個JS腳本也將被重新加載,因此,包含任何類型數據的任何變量都將被重置爲默認值。我能想到的唯一方法就是在接收提交後,在JavaScript腳本中設置一個由服務器端languaje設置的變量。

在JS時加載頁面做

var = false; //false = no open tabs 
$(".selector").accordion({ ..., active: var }); 

在提交使PHP,假設你使用它,這樣做:

$my_tab_number = n; 
var = <php echo $my_tab_number; ?>; 

所以當頁面重新加載獲取將被打開在你想要的標籤中。