[英]How can I change this Jquery function (toggle)
<head>
<script type="text/javascript">
$(document).ready(function(){
$(".open_list").hide();
$(".trigger").click(function(){
$(this).toggleClass("active").next().slideToggle("800");
});
});
</script>
我正在做一个列表,里面有一些隐藏的div,我做了这个jquery函数来做到这一点。 事实是,此函数使您在单击触发器链接时将向您显示open_list之后的div。
我正在寻找另一个函数,该函数允许我执行相同的操作,但该函数可激活.open_list之后的div,但具有确定的类。
因此,它将忽略open_list之后没有该类的div。
我一直在做这件事,我找不到正确的方法去做。 有人知道吗?
所以我把脚本:
<script type="text/javascript">
$(document).ready(function(){
$(".open_list").hide();
$(".trigger").click(function(){
$(this).toggleClass("active").nextAll('.campaigns_list').slideToggle("800");
});
});
但仍然不起作用。 我需要打开div时h1完全不移动。
您可以使用由选择器过滤的nextAll()
,然后获取该列表的first()
元素:
$(".trigger").click(function(){
$(this).toggleClass("active").nextAll('.yourClass').first().slideToggle("800");
});
您可能遇到的问题是,如果执行next('.yourClass')
如果下一个兄弟姐妹不是.youClass
兄弟姐妹,则不会返回任何元素
大多数jQuery遍历方法( next
, parent
等)都带有一个可选的选择器参数:
$(this).nextAll('.someclass').first().slideToggle(800);
此代码将选择具有someclass
类的元素的someclass
,并执行slideToggle
动画。
这真的很简单-只是不使用next()而是nextAll()
<script type="text/javascript">
$(document).ready(function(){
$(".open_list").hide();
$(".trigger").click(function(){
$(this).toggleClass("active").nextAll('.yourClass').slideToggle("800");
});
});
</script>
如果只想选择一个元素,请在.nextAll()函数后附加“ .eq(0)”。
希望我能帮到你。 最好的问候,雅各布。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.