jQuery子菜单Accordion

时间:2014-12-09 13:52:34

标签: javascript jquery html css accordion

我试图用这种手风琴隔离很多东西有点困难。其一,我似乎无法获得除滑动切换之外的其他任何东西。工作,这对我来说很奇怪。我有一个ul和一个ul。我希望在单击父级别时只能查看子菜单的活动实例。

这是我的CSS

    .ca-menu {
    padding: 0;
    margin-bottom:1px;
    width: 300px;
}
ul.ca-menu li {
    width: 300px;
    overflow: hidden;
    display: block;
    background: #001e47;
    -webkit-box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
    -moz-box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
    box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
    margin-bottom:0px;
    border-left: 10px solid #cfcfcf;
    -webkit-transition: all 300ms ease-in-out;
    -moz-transition: all 300ms ease-in-out;
    -o-transition: all 300ms ease-in-out;
    -ms-transition: all 300ms ease-in-out;
    transition: all 300ms ease-in-out;
}
ul.ca-menu li:last-child {
    margin-bottom: 0px;
}
ul.ca-menu li a {
    text-align: left;
    display: block;
    width: 100%;
    height: 100%;
    color: #cfcfcf;
    position:relative;
}
ul.ca-icon {
    font-family:'FontAwesome';
    font-size: 25px;
    text-shadow: 0px 0px 1px #333;
    line-height: 40px;
    position: absolute;
    top:10px;
    width: 90px;
    left: 0px;
    text-align: center;
    -webkit-transition: all 300ms linear;
    -moz-transition: all 300ms linear;
    -o-transition: all 300ms linear;
    -ms-transition: all 300ms linear;
    transition: all 300ms linear;
}
.ca-content {
    position: relative;
    left: 70px;
    width: 230px;
    height: 20x;
    top: 5px;
    line-height:6px;
}
.ca-main {
    font-size: 12px;
    font-family: Century Gothic;
    -webkit-transition: all 300ms linear;
    -moz-transition: all 300ms linear;
    -o-transition: all 300ms linear;
    -ms-transition: all 300ms linear;
    transition: all 300ms linear;
    line-height:4px;
}
.ca-sub {
    font-size: 16px;
    color: #666;
    -webkit-transition: all 300ms linear;
    -moz-transition: all 300ms linear;
    -o-transition: all 300ms linear;
    -ms-transition: all 300ms linear;
    transition: all 300ms linear;
    font-family:myriad pro;
}
ul.ca-menu li:hover {
    border-color: #001e47;
    background: #cfcfcf;
}
ul.ca-menu li:hover .ca-icon {
    color: #001e47;
    text-shadow: 0px 0px 1px #001e47;
    font-size: 30px;
}
ul.ca-menu li:hover .ca-main {
    color: #001e47;
    font-size:20px;
}
ul.ca-menu li:hover .ca-sub {
    color: #fff;
    font-size: 12px;
}
ul.ca-menu ul.sub-menu li {
    background:#fff;
    width:100%;
    position:relative;
    left:-50px;
    display:block;
}
ul.ca-menu ul.sub-menu {
    background:#fff;
    width:100%;

}

和jquery

$(document).ready(function () {
    $('.sub-menu li').hide();
    $(".ca-menu li").click(function () {
        $(this).next(".sub-menu").siblings("li").slideUp();
    });
});

这里有一个js小提琴链接:http://jsfiddle.net/fsew7sh1/

1 个答案:

答案 0 :(得分:0)

我更正你的代码,只需输入:

$(document).ready(function () {
 $('.sub-menu li').hide();
 $(".ca-menu li").click(function () {
    $(this).find(".sub-menu").slideDown();
    $(this).siblings("li").find(".sub-menu").slideUp();
 });
});

或者,将slideUp放入slideDown回调:

var l;  
$('.sub-menu li').hide();

$(".ca-menu li").click(function () {
    l = $(this).siblings("li").find(".sub-menu");
    $(this).find(".sub-menu").slideDown(function(){
        l.slideUp();
    });
});

以下示例为:jsfiddlejsfiddle with callback