2012-03-16 143 views
0

有沒有辦法強制jQuery UI手風琴與CSS關閉直到頁面加載完成?我們正在內容管理系統上使用它,每個頁面都需要花費一定的時間來加載。在頁面完成加載之前,jQuery不會觸發,但是哪一點,所有的手風琴都已經擴展了。它們在頁面加載後關閉,但我覺得用戶看到一大堆東西出現然後消失,這讓人感到困惑。用CSS關閉jQuery UI手風琴

+1

http://stackoverflow.com/questions/7947789/jquery-ui-accordion-start-collapsed – ahillman3 2012-03-16 15:21:50

回答

2

有一個在.accordion({ ... })調用本身的選項:

.accordion({ active: false, collapsible: true }); 

active: false選項使得封閉創建和collapsible: true選項可以讓您可以重新關閉它,一旦你打開它。

+0

打我吧... :-) – 2012-03-16 15:23:17

+0

我毆打了他,引用了另一個問題,但被轉換爲一個評論爲微不足道的。 – ahillman3 2012-03-16 15:24:34

+0

但是,在頁面完成加載之前,它還會等待,因爲它仍然在'$(document).ready()'中? – JacobTheDev 2012-03-16 15:32:28

0

繼從jQuery手風琴documentation的設置,你可以簡單地把<div style="display: none">下面的H3頭內容DIV。這會在頁面加載時隱藏手風琴中的所有內容。

0

您可以設置它想:

.accordion-body{ 
    display: none; 
} 

我想這將手風琴調用$ .show(或類似)的地方,這樣你就不會需要擔心再次顯示它。再次,這是一個猜測,所以我錯了的情況下,就使其可見再次使用

$('.accordion-body').css('display', 'block'); 
$('#accordion').accordion(); 

但是,如果你在DOM加載調用.accordion(),你也可以嘗試發射它較早,使用。負載:

$('#accordion').load(function(){ 
    $(this).accordion(); 
}); 
0

你可以嘗試這樣的事:

在你的CSS,樣式應用於您使用調用手風琴選擇:

.accordionSelector > div { display:none; } 

然後改變displayblock jQuery的加載後:

$(".accordionSelector").accordion({...}).children("div").css("display","block");