如何仅切换标题元素而不切换列表
How to toggle only header element not the list
我有这个函数,可以展开<ul>
并在按下后将其隐藏。但是当我按下<li>
它也会关闭或扩展。如何使其仅在单击<h4>
时切换?
$('.category ul').hide();
$('.sub').click(function() {
$(this).find('ul').slideToggle();
});
<ul class="category text-center">
<li class="sub">
<h4><b>Licenses</b></h4>
<ul class="archive_posts">
<li class="posts"><a href="www.google.com" target="_blank">Licence types and users plans</a></li>
<li class="posts"><a href="#">Adding new licence</a></li>
<li class="posts"><a href="#">Updating licence</a></li>
<li class="posts"><a href="#">Removing licence</a></li>
</ul>
</li>
</ul>
提前谢谢。
所做的
更改
► 将$('.sub').click(function() {
更改为$('.sub h4')
► 将$(this).find('ul')
更改为$(this).next()
工作演示
$('.category ul.archive_posts').hide();
$('.sub h4').click(function() {
$(this).next().slideToggle();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="category text-center">
<li class="sub">
<h4><b>Licenses</b></h4>
<ul class="archive_posts">
<li class="posts"><a href="www.google.com" target="_blank">Licence types and users plans</a>
</li>
<li class="posts"><a href="#">Adding new licence</a>
</li>
<li class="posts"><a href="#">Updating licence</a>
</li>
<li class="posts"><a href="#">Removing licence</a>
</li>
</ul>
</li>
</ul>
将绑定更改为h4
,然后定位下一个ul.archive_posts
进行滑动。
$('.category ul').hide();
$('h4').click(function() {
$(this).next('ul.archive_posts').slideToggle();
});
看到它在这个JS小提琴中工作:https://jsfiddle.net/rwvdf8ys/1/
希望有帮助。
问题是 $('this').find('ul').slideToggle();
"this"表示校准函数的 OBJ。在本例中为 h4。H4 没有 ul,所以你找不到它。但是你可以在$('.sub')上找到ul
这是安的例子
$('.category ul').hide();
$('h4').click(function() {
$('.sub').find('ul').slideToggle();
});
<ul class="category text-center">
<li class="sub">
<h4 id="foo"><b>Licenses</b></h4>
<ul class="archive_posts">
<li class="posts"><a href="www.google.com" target="_blank">Licence types and users plans</a></li>
<li class="posts"><a href="#">Adding new licence</a></li>
<li class="posts"><a href="#">Updating licence</a></li>
<li class="posts"><a href="#">Removing licence</a></li>
</ul>
</li>
</ul>
JS小提琴:
https://jsfiddle.net/8hvc4cfh/
您可以使用siblings('ul')
选择器来查找并关闭相邻的 ul。虽然$(".sub h4")
将可点击元素限制为您的h4
.
$('.category ul').hide();
$('.sub h4').click(function() {
console.log('test');
$(this).siblings('ul').slideToggle();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="category text-center">
<li class="sub">
<h4><b>Licenses</b></h4>
<ul class="archive_posts">
<li class="posts"><a href="www.google.com" target="_blank">Licence types and users plans</a>
</li>
<li class="posts"><a href="#">Adding new licence</a>
</li>
<li class="posts"><a href="#">Updating licence</a>
</li>
<li class="posts"><a href="#">Removing licence</a>
</li>
</ul>
</li>
</ul>
你可以
试试这个。
$('li.sub h4').click(function() {
$(this).next().slideToggle();
});
相关文章:
- 将列表元素动画制作到顶部
- 使用Razor和javascript来获得下拉列表元素
- 根据列表元素的值使用JQuery获取列表元素
- 将列表元素动态添加到ul元素中
- 使用 jquery 库获取锚点列表元素内的文本
- 在没有大量回调函数的情况下在列表元素上循环播放同一动画
- 使用JSON和JavaScript添加额外的html列表元素
- 范围和列表元素在 DIV 中换行
- jQuery:影响相同深度的列表元素
- 所选列表元素不会保持选中状态(通过ajax请求更新后)
- 一次显示n个列表元素,jQuery
- 将列表元素宽度设置为文本宽度
- 选择列表元素(捕获向下/向上箭头)
- 限制要在嵌套列表jQuery中添加的列表元素的数量
- 如何从有序列表中选择一个列表元素
- 将列表元素 onclick 事件绑定到单选输入
- 每个列表元素的角度
- JQUERY 在多个无序列表中选择第 n 个列表元素
- 通过将文本替换为类来换行/中断列表元素
- 按类名包装列表元素