首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击子节点时从父级移除活动状态,反之亦然

单击子节点时从父级移除活动状态,反之亦然
EN

Stack Overflow用户
提问于 2016-02-25 22:25:28
回答 1查看 599关注 0票数 1

我需要一种方法让我的活动状态在我的侧边栏中正常工作。

目前我的问题是:

  1. 当单击li时,所有子菜单(.子菜单)都接收活动状态状态。
  2. 当在单击子菜单li之后单击li (非子菜单)时,单击的子菜单li的活动状态不会被移除。

希望你能帮上忙。

代码语言:javascript
复制
$("#sidebar li").click(function(){
    $(this).siblings().removeClass('active');
    $(this).addClass('active');
    $('#sidebar li').children().removeClass('active');
});

html

代码语言:javascript
复制
<div class="col-md-4" id="sidebar">
    <?php
    if (is_page('gulvservice')){
        wp_nav_menu(array('menu'=>'gulvservice' ));
    } elseif (is_page('malerservice')) {
        wp_nav_menu(array('menu'=>'malerservice' ));
    } elseif (is_page('industrilakering')) {
        wp_nav_menu(array('menu'=>'industrilakering' ));
    }
    ?>
    <!-- <?php wp_nav_menu( array( 'theme_location' => 'gulvservice' ) ); ?> -->
    <div class="gulvservice-kontaktinfo">
        <p>EM. Meyers Eftf. A/S</p>
        <p>CVR: 82510028</p>
        <p>Tlf.: 36349500 / 40384053</p>
        <p>E-mail: gulve@meyers.dk</p>
    </div>
</div>

呈现的html:

EN

回答 1

Stack Overflow用户

发布于 2016-02-26 00:35:02

找到了解决这两个问题的方法。

1:

我通过css而不是jquery使用伪元素实现了这一点。我做的原因是:在元素之前,是因为我的子菜单列表项上有一些缩进。

CSS:

代码语言:javascript
复制
#sidebar ul li{
    text-align: left;
    padding-left:25px;
    position:relative;
}

#sidebar ul li a{
text-decoration: none;
color:white;
text-align:left;
position:relative;
z-index:100000;
}


#sidebar ul li:hover:after:not(.submenu){
    content: "";
    width:100%;
    height:50px;
    position:absolute;
    top:0;
    left:0;
    z-index:100;
    background: rgba(0,0,0,0.4);
}

#sidebar ul li.active:after{
    content: "";
    width:100%;
    height:50px;
    position:absolute;
    top:0;
    left:0;
    z-index:100;
    background: rgba(0,0,0,0.4);
}

#sidebar ul li ul li:hover:after{
    content: "";
    width:100%;
    height:50px;
    padding-left:25px;
    position:absolute;
    top:0;
    left:0;
    z-index:100;
    background: rgba(0,0,0,0.4);
}


#sidebar ul li ul li:hover:before{
    content: "";
    width:25px;
    height:50px;
    position:absolute;
    top:0;
    left:-25px;
    z-index:100;
    background: rgba(0,0,0,0.4);
}

#sidebar ul li ul li.active:after{
    content: "";
    width:100%;
    height:50px;
    padding-left:25px;
    position:absolute;
    top:0;
    left:;
    z-index:100;
    background: rgba(0,0,0,0.4);
}

#sidebar ul li ul li.active:before{
    content: "";
    width:25px;
    height:50px;
    position:absolute;
    top:0;
    left:-25px;
    z-index:100;
    background: rgba(0,0,0,0.4);
}

2:信用归于@mark.hch

首先,从所有列表项中删除活动类。接下来,将活动类添加到单击的列表项中。

代码语言:javascript
复制
$('#sidebar li').removeClass('active');
$(this).addClass('active');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35639640

复制
相关文章

相似问题

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