2012-03-16 141 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");