搜尋

首頁  >  問答  >  主體

javascript - slideToggle實現折疊選單效果,但是怎麼實現點擊這個選項展開,其他選項自動折疊呢?

想要實現的是折疊選單,但是slidetoggle 只能點擊才能收起來,我要的是點擊別的選項,已經展開的自動折疊,請問怎麼修改?
程式碼如下:
$("> li", this).each(function () {

            $(this).bind("click", function () {
                if($(this).hasClass('active')){
                    //$(".inner ol").hide();
                    //$(this).siblings("ol").slideToggle(settings.speed);
                    $(this).next("ol").slideToggle(settings.speed);
                    $(this).removeClass('active');
                }else{
                    $(this).siblings('li').removeClass('active');
                    //$(".inner ol").hide();
                    $(this).addClass('active')
                    $(this).next("ol").slideToggle(settings.speed);
                }
            });
        });
        //默认折叠
        $("> ol", this).hide();
某草草某草草2732 天前971

全部回覆(3)我來回復

  • 漂亮男人

    漂亮男人2017-07-05 11:08:06

    雷雷

    回覆
    0
  • ringa_lee

    ringa_lee2017-07-05 11:08:06

    思路如下:

    1.點選目前選單的時候,記錄下來,先把所有開啟的選單全部關閉,最後再把自己開啟

    $(".menu .menu-header").on("click",function(){
        var toggleTarget=$(this);
        //先把其他得关掉
        $(".menu .menu-content").removeClass("active");
        $(this).find(".menu-content").addclass("active");
        
    })

    以上程式碼只是一個示範例子,大概思路捋捋,看看行不

    回覆
    0
  • 天蓬老师

    天蓬老师2017-07-05 11:08:06

    網上查詢了下資料,原來有個slideup()函數,用他替換hide()即可,感謝!
    $("> li", this).each(function () {

                $(this).bind("click", function () {
                    if($(this).hasClass('active')){
                        $(".inner ol").slideUp('500');
                        $(this).removeClass('active');
                    }else{
                        $(this).siblings('li').removeClass('active');
                        $(".inner ol").slideUp('500');
                        $(this).addClass('active')
                        $(this).next("ol").slideToggle(settings.speed);
                    }
                });
            });
            //默认折叠
            $("> ol", this).hide();

    回覆
    0
  • 取消回覆