[英]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 : 您可以检测事件
click
与a
标签:
$('#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.