jquery accordion在页面加载时默认折叠

时间:2011-07-04 20:00:09

标签: javascript jquery jquery-ui

我在我的页面中使用JQuery UI手风琴。我在页面加载时遵循了以下Javascript代码:

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

});

当页面加载时,所有选项卡都会打开几秒钟然后崩溃。可能是它的负载效应。如何在页面加载时折叠Jquery UI折叠。请建议

6 个答案:

答案 0 :(得分:10)

虽然不是直接的答案,但也许你可以隐藏它,然后在创建它时显示它:

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

更新:这个小提琴对我有用:http://jsfiddle.net/47aSC/6/

答案 1 :(得分:9)

对我而言,这有效:

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

        });
});

答案 2 :(得分:3)

它可能会慢慢地在页面末尾附近加载一些东西。如果你无法解决这个问题,你可以尝试在css中声明应用了display:none的元素,然后:

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

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

答案 3 :(得分:1)

最佳解决方案是:

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

将第29行编辑为有效:100, 将第31行编辑为可折叠:true,

这样您就不需要在页面标题中编写任何脚本或函数。通过将活动设置为较高的数字(例如100),您说第100个h3标签处于活动状态(基本上不存在)。

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

它完全解决了这个问题。

答案 4 :(得分:1)

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

这会将DOM中的所有.collapse类设置为关闭,但只有在DOM完成加载后才会设置。

答案 5 :(得分:0)

//我们也可以使用下面的代码来折叠页面加载时的手风琴,它应该在我们使用bootstrap 2.0时使用

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

其他明智的我们应该使用以下代码进行bootstrap 3.0

$( "#accordianId" ).accordion( "option", "active", 0 );