简体   繁体   English

ul li中的li的jQuery选择器

[英]jQuery selector for li in ul li

I create a menu & want to when click on li children just child set .active class no li parent 我创建一个菜单,并希望在单击li孩子时设置为child set .active class no li parent

(Use in enfold WordPress theme) (用于折叠WordPress主题)

 $('#mobile-advanced li.menu-item-has-children').on('click', function () { $(this).toggleClass('active'); }); // just for test $('a').on('click', function (e) { e.preventDefault() ; }); 
 li.active{ background-color: #FFB94B; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul id="mobile-advanced"> <li class="menu-item menu-item-has-children"> <a href="">T 1</a> <ul> <li class="menu-item menu-item-has-children"> <a href="">T11</a> <ul> <li class="menu-item"><a href="">T111</a></li> <li class="menu-item"><a href="">T112</a></li> </ul> </li> <li class="menu-item"><a href="">T12</a></li> <li class="menu-item"><a href="">T13</a></li> </ul> </li> <li class="menu-item"> <a href="">T 2</a> </li> </ul> 

for example, when I click li children li parent set active class 例如,当我单击li children li parent设置活动班级时 屏幕截图

you can detect event click with a tags : 您可以检测事件clicka标签:

 $('#mobile-advanced li.menu-item-has-children a').on('click', function () { $(this).parent().toggleClass('active'); }); // just for test $('a').on('click', function (e) { e.preventDefault() ; }); 
 li.active{ background-color: #FFB94B; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul id="mobile-advanced"> <li class="menu-item menu-item-has-children"> <a href="">T 1</a> <ul> <li class="menu-item menu-item-has-children"> <a href="">T11</a> <ul> <li class="menu-item"><a href="">T111</a></li> <li class="menu-item"><a href="">T112</a></li> </ul> </li> <li class="menu-item"><a href="">T12</a></li> <li class="menu-item"><a href="">T13</a></li> </ul> </li> <li class="menu-item"> <a href="">T 2</a> </li> </ul> 

You just need add another class into the element you want to change. 您只需要在要更改的元素中添加另一个类即可。 In my case, i define anther class called "active-this" and apply the jquery function to this class. 在我的情况下,我定义了另一个称为“ active-this”的类,并将jquery函数应用于该类。 Follow the example: 根据例子:

 $('.active-this').on('click', function () {
   $(this).toggleClass('active');
});

// just for test
$('a').on('click', function (e) {
    e.preventDefault() ;
});



li.active{
  background-color: #FFB94B;
}


<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<ul id="mobile-advanced">
        <li class="menu-item menu-item-has-children">
            <a href="">T 1</a>
            <ul>
                <li class="menu-item menu-item-has-children">
                    <a href="">T11</a>
                    <ul>
                        <li class="menu-item active-this"><a href="">T111</a></li>
                        <li class="menu-item active-this"><a href="">T112</a></li>
                    </ul>
                </li>
                <li class="menu-item active-this"><a href="">T12</a></li>
                <li class="menu-item active-this"><a href="">T13</a></li>
            </ul>
        </li>
        <li class="menu-item">
            <a href="">T 2</a>
        </li>
    </ul>

You can use the below selector to be able to click on li menu items excluding parent li elements. 您可以使用以下选择器单击除父li元素以外的li菜单项。

$('#mobile-advanced li.menu-item').not(".menu-item-has-children")

 $('#mobile-advanced li.menu-item').not(".menu-item-has-children").on('click', function (e) { e.preventDefault(); $(this).toggleClass('active'); }); $(".menu-item-has-children").on('click', function(e){ e.preventDefault(); }) 
 li.active { background-color: #FFB94B; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <ul id="mobile-advanced"> <li class="menu-item menu-item-has-children"> <a href="">T 1</a> <ul> <li class="menu-item menu-item-has-children"> <a href="">T11</a> <ul> <li class="menu-item"> <a href="">T111</a> </li> <li class="menu-item"> <a href="">T112</a> </li> </ul> </li> <li class="menu-item"> <a href="">T12</a> </li> <li class="menu-item"> <a href="">T13</a> </li> </ul> </li> <li class="menu-item"> <a href="">T 2</a> </li> </ul> 

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

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