2011-07-04 59 views
5

我在页面中使用了JQuery UI手风琴。我在页面加载时有以下Javascript代码:jquery accordion在页面加载时默认为折叠状态

$(function() { 
    $("#accordion").accordion({ 
      active: false, 
      autoHeight: false, 
      navigation: true, 
      collapsible: true 
     }); 

}); 

当页面加载所有选项卡时,打开几秒钟然后折叠。可能是它的加载效果。如何在页面加载时使Jquery UI手风琴折叠。请建议

+0

你能在http://www.jsfiddle.net上重现这个吗? –

+0

@Andrew:请检查链接。 http://jsfiddle.net/47aSC/对不起,我第一次使用它,并没有格式化。我想jQuery链接需要来自现场。 – DotnetSparrow

+0

http://stackoverflow.com/questions/4633971/how-do-i-keep-jquery-ui-accordion-collapsed-by-default – Mrchief

回答

11

虽然没有直接回答,也许你可以使它隐藏,然后显示它的创建时间:

$("#accordion").accordion({ 
    active: false,    
    autoHeight: false,    
    navigation: true,    
    collapsible: true, 
    create: function(event, ui) { $("#accordion").show(); } 
}); 

更新:这拨弄为我的作品:http://jsfiddle.net/47aSC/6/

+0

@mootinator @Merchief:我使用了display none,并使用了你的代码示例(两者),但是当页面加载时,手风琴是不可见的并且突然出现。我希望手风琴在那里,但在页面加载时折叠 – DotnetSparrow

+0

嗯,根据文档,'{active:false,collapsible:true}'应该渲染所有内容。我想知道是否有其他干扰。你可以用你的问题创建一个jsfiddle吗? – Mrchief

+0

。 jsfiddle.net/47aSC对不起,我第一次使用它,并没有格式化。我想jQuery链接需要来自现场。我在asp.net内容页面中使用了这个。可能是那个原因? – DotnetSparrow

3

它可能会缓慢地加载页面结尾附近的东西。如果无法修复,您可以尝试在声明CSS应用到它有display:none元素,则:

$("#accordion").show().accordion({ 
     active: false, 
     autoHeight: false, 
     navigation: true, 
     collapsible: true 
    }); 

有可能是这样做的(如@Mrchief建议)的更清洁的方式,但我不我不认为.accordion()很好地格式化隐藏的元素。你必须测试。

8

对于我这个作品:

$(function() { 
    $("#accordion").accordion({ 
      collapsible: true, 
      autoHeight: true, 
      active: false 

     }); 
}); 
1

最好的解决办法是:

打开jquery.ui.accordion.js并编辑第29和31行(顺便说一句,我使用1.10.4)。

编辑线29 活动:100, 编辑31行至可折叠:真,

这样,你不需要编写任何脚本或函数在页面的标题。通过设置活动到一个很高的数字(例如100),你说第100个h3标签是活动的(基本上不存在)。

可折叠:true表示所有打开的h3标签都是可折叠的。

它完全解决了这个问题。

1
$(document).ready(function() { 
    $('.collapse').collapse({ 
    toggle: false 
    }); 
}); 

这将设置在DOM所有.collapse类收,但只有一次的DOM完成加载。

0

//我们还可以使用下面的代码折叠的页面加载手风琴和它应该使用时,我们使用引导2.0

$(document).ready(function() { 
      if ($("#accordianId").length>0) { 
         $("#accordianId").trigger("click"); 
        } 
      }); 

其他明智的,我们应该用下面的代码为引导3.0

$("#accordianId").accordion("option", "active", 0); 
相关问题