首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >手风琴打开/关闭电视机

手风琴打开/关闭电视机
EN

Stack Overflow用户
提问于 2013-10-15 16:34:12
回答 1查看 406关注 0票数 1

我正在设置一个手风琴,一旦单击h3,就需要打开/关闭类侧导航块项中的所有div(不管有多少)。我不能修改HTML的结构,只能添加类。

HTML结构:

代码语言:javascript
复制
<div class="side-nav">

<div class="side-nav-item">
<h3>Title</h3>
<div class="side-nav-block-item">content</div>
<div class="side-nav-block-item">content</div>
</div>

<div class="side-nav-item">
<h3>Title</h3>
<div class="side-nav-block-item">content</div>
</div>

</div>

Jquery (我的尝试失败)

代码语言:javascript
复制
    $('.side-nav h3').addClass('on');
//ACCORDION BUTTON ACTION (ON CLICK DO THE FOLLOWING)
$('.side-nav h3').click(function() {

    //REMOVE THE ON CLASS FROM ALL BUTTONS
    $('.side-nav h3').removeClass('on');

    //NO MATTER WHAT WE CLOSE ALL OPEN SLIDES
    $('.side-nav-block-item').slideUp('normal');

    //IF THE NEXT SLIDE WASN'T OPEN THEN OPEN IT
    if($(this).next().is(':hidden') == true) {

        //ADD THE ON CLASS TO THE BUTTON
        $(this).next().addClass('on');

        //OPEN THE SLIDE
        $(this).next().slideDown('normal');
     } 


 });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-15 18:02:21

如果我理解正确,不需要检查下一个标头是否隐藏,只需检查.side-nav h3是否有.on类。如果是这样的话,删除类和slideUp。如果没有,则添加类和slideDown

看看这个jsFiddle。它应该能完成你想要的。

代码语言:javascript
复制
$('.side-nav h3').addClass('on');
$('.side-nav h3').click(function() {
    if ($(this).hasClass('on')) {
        // Remove class
        $(this).toggleClass('on');
        // Slide up the siblings of the header that was clicked
        $(this).siblings('.side-nav-block-item').slideUp('normal');
    } else {
        // Add class
        $(this).toggleClass('on');
        // Slide down the siblings of the header that was clicked
        $(this).siblings('.side-nav-block-item').slideDown('normal');
    }
});

更新

下面是一个更新的jsFiddle

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19386401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档