javascript - slideToggle实现折叠菜单效果,但是怎么实现单击这个选项展开,其他选项自动折叠呢?
某草草
某草草 2017-07-05 11:06:06
0
3
887

想要实现的是折叠菜单,但是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();
某草草
某草草

全部回复 (3)
漂亮男人

雷雷

    ringa_lee

    思路如下:

    1.单击当前菜单的时候,记录下来,先把所有打开的菜单全部关闭,最后再把自己开启

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

    以上代码只是一个演示例子,大概思路捋捋,看看行不

      Peter_Zhu

      网上查询了下资料,原来有个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();
        最新下载
        更多>
        网站特效
        网站源码
        网站素材
        前端模板
        关于我们 免责声明 Sitemap
        PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!