繁体   English   中英

子菜单处于活动状态时,将类添加到父级li

[英]add class to parent li when submenu is active

尽管搜寻了几个小时,但我在这里遇到了问题。 我有一个包含子菜单的菜单。

<div class="themenu">
    <ul>

      <li>Link 1               //Want to add class catactive here when the following submenu is active

        <div class="thesubmenu">

           <ul>
             <li class="subcat-active">submenu1</li>
           </ul>

        </div>

      </li>
    </ul>
</div>

我尝试使用此查询,但没有发生。

$(document).ready(function(){
                if($('.thesubmenu ul li').hasClass('subcat-active')){
                    $(this).parent('.themenu ul li').addClass('cat-active');
                } 
            });

有许多方法可以编写此代码,但无需进行迭代( .each() )或使用.hasClass()会减慢此简单调用的速度。

只需选择.subcat-activeli项,然后使用closest('li')查找最接近的li祖先并添加类。 您需要使用.parent()首先是因为closest()包括开始元素,这也是一个li

$(document).ready(function(){
    $('.thesubmenu ul li.subcat-active').parent().closest('li').addClass('cat-active');
});

http://jsfiddle.net/3ehvqzjh/1/

$(document).ready(function(){
   $('.subcat-active').each(function () {
       $(this).parents('li').eq(0).addClass('cat-active');
   });
});

工作实例

做就是了:

$(document).ready(function(){
    $('.thesubmenu ul li.subcat-active').each(function(){
        $(this).parent().closest('li').addClass('cat-active');
    });
});

演示: http//jsfiddle.net/bpkpn6b5/

这是一个演示

 $(document).ready(function(){

     if ($('.thesubmenu ul li').hasClass('subcat-active')) {
          $('.thesubmenu ul li').parents('li:eq(0)').addClass('cat-active');
     } 
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM