嵌套的Accordion展开完整的第一个窗格jquery

时间:2014-07-22 08:14:48

标签: jquery

我要求输出。

第1项  项目1.1
   项目1.1.1
 项目1.2
第2项 第3项 如果我点击第2项,那么输出将是
第1项 第2项  项目2.1
  项目2.1.1
 项目2.2
第3项

这是我的javascript。

$(".slide-list li a").click(function() {    

        if ($(this).hasClass("selected") && $(this).next().queue().length === 0) {
            $(this).next().slideUp();
            $(this).removeClass("selected");
        } 
    else if (!$(this).hasClass("selected") && $(this).next().queue().length === 0) {
            $(this).next().slideDown();
            $(this).addClass("selected");
        //$(this).next().find("ul:first").show();
        $(this).next().find("ul:first").slideToggle('slow'); //not working perfectly.    
        }
     var $licurrent = $(this).parent();
     window.location.hash = $('.slide-list li').index($licurrent);
$licurrent.parent().find("li").not($licurrent).find("a").removeClass("selected");           $licurrent.parent().find("li").not($licurrent).find("ul").hide("k");

 });

$(document).ready(function(){
$("#Accord-wrapper ul.slide-list li a").first().trigger("click");
});

1 个答案:

答案 0 :(得分:0)

<强>更新

如果您只想显示级别2和级别3而不是级别2,那么这是工作Fiddle ..

将您的JS改为:

$(".slide-list li a").click(function() { 
    if($(this).hasClass("selected")){
        $(this).removeClass("selected");
        temp_selector = $(this).next("ul");
        while(temp_selector.length > 0 ){
            temp_selector.slideUp();
            temp_selector = temp_selector.find("ul");
        } 
    }else{
        $(this).parent().siblings("li").each(function(){
            $(this).find(".selected").next("ul").slideUp();
            $(this).find(".selected").removeClass("selected");
        });
        temp_selector = $(this).next("ul");
        while(temp_selector.length > 0 ){
            temp_selector.prev("a").addClass("selected");
            temp_selector.slideDown();
            temp_selector = temp_selector.children("li").first().children("a").next("ul");
        }
    }
});