使用CSS关闭jQuery UI
有没有办法强制jQueryUI使用CSS关闭,直到页面加载完成?我们在一个内容管理系统上使用它,每个页面都需要花费一定的时间来加载。jQuery在页面加载完成之前不会被触发,但是在这一点上,所有的accordios都已经被展开了。一旦页面加载,它们就会关闭,但我觉得看到一大堆东西出现然后消失,用户会感到困惑 在使用CSS关闭jQuery UI,jquery,html,css,jquery-ui,jquery-ui-accordion,Jquery,Html,Css,Jquery Ui,Jquery Ui Accordion,有没有办法强制jQueryUI使用CSS关闭,直到页面加载完成?我们在一个内容管理系统上使用它,每个页面都需要花费一定的时间来加载。jQuery在页面加载完成之前不会被触发,但是在这一点上,所有的accordios都已经被展开了。一旦页面加载,它们就会关闭,但我觉得看到一大堆东西出现然后消失,用户会感到困惑 在.accordion({…})上有一个选项,可以自己调用: .accordion({ active: false, collapsible: true }); active:false选
.accordion({…})
上有一个选项,可以自己调用:
.accordion({ active: false, collapsible: true });
active:false
选项使其在创建时关闭,而collapsable:true
选项使其在打开后可以重新关闭。这些选项显示了如何在关闭所有选项卡的情况下初始化手风琴。请参阅:这意味着初始化代码为:
$( ".selector" ).accordion({ active: false, collapsible: true });
按照jQuery Accordion的设置,您可以简单地将
放在h3标题下方的content div上。这将在页面加载时隐藏手风琴中的所有内容。您可以将其设置为:
.accordion-body{
display: none;
}
我猜手风琴会在某处调用$.show(或类似),所以您不必担心再次显示它。同样,这是一个猜测,如果我错了,你可以使用
$('.accordion-body').css('display', 'block');
$('#accordion').accordion();
但是,如果您在dom load上调用.accordio()
,也可以尝试更早地使用.load启动它:
$('#accordion').load(function(){
$(this).accordion();
});
您可以尝试以下方法: 在CSS中,将样式应用于用于调用手风琴的选择器:
.accordionSelector > div { display:none; }
然后在jQuery加载后,将显示
更改回块
:
$(".accordionSelector").accordion({...}).children("div").css("display","block");
我打了他一顿,提到了另一个问题,但被转换成了一个无关紧要的评论。但这难道不会一直等到页面加载完成后才触发,因为它仍然在
$(文档)中。ready()
?然后把它放在一个标准的$(function(){})中代码>你会没事的。@Rev,是的,我想你指的是FOUC或Flash的非样式内容。你可以按照许多指南来解决这个问题。一种简单(但不推荐)的方法是隐藏所有内容并在$(document.ready()
上显示。