0

我正在使用 jquery ui 手风琴来显示一些数据,active:false如果有多个面板,我希望所有面板默认关闭,但active:true如果它只包含一个面板则打开。

$(function() {
                $("#accordion").accordion({autoHeight:false, collapsible: true, navigation: true,
                    clearStyle: true, active: false,
                    change: function(event, ui) {
                        resize_iframe();
                    },
                    create: function(event, ui) {
                    if($("#accordion div").length == 1) {
                       $(this).accordion({active:true});
                    }
                }
                });
            });

我试过了,但它不起作用,即使只有一个面板,面板也总是关闭,所以有人知道问题出在哪里吗?

4

2 回答 2

0

我刚刚找到了一个解决问题的方法,即创建两种不同的配置,然后根据条件创建手风琴。

 $(function() {
            var more = {autoHeight:false, collapsible: true, navigation: true,
                    clearStyle: true, active: false,
                    change: function(event, ui) {
                        resize_iframe();
                    }
                };
                var one = {autoHeight:false, collapsible: true, navigation: true,
                    clearStyle: true, active: true
                    change: function(event, ui) {
                        resize_iframe();
                    }
                }
                if($("#accordion div").length == 1) {
                $("#accordion").accordion(one);
                } else {
                    $("#accordion").accordion(more);
                }
            });
于 2012-08-04T02:13:17.600 回答
0

您也可以在 jquery 内的手风琴控件结束后尝试:

$(function() {
    if($("#accordion div").length == 1) {
            $("#accordion").accordion();
            $("#accordion div").css("display", "block");
    }else
    {
            $("#accordion").accordion({autoHeight:false, collapsible: true, navigation: true,
                clearStyle: true, active: false,
                change: function(event, ui) {
                    resize_iframe();
                });
    }

});

我希望这会奏效,

于 2012-08-04T02:22:26.517 回答