gpt4 book ai didi

javascript - 更高效的可折叠列表定位

转载 作者:行者123 更新时间:2023-11-30 18:24:29 26 4
gpt4 key购买 nike

我想弄清楚是否有一种方法可以使用 jquery 的 slideDown/slideUp/slideToggle 函数在我单击这些可折叠元素时为其设置动画。这是元素的 html 布局的片段:

<ul> 
<li class="category1"><a href="#"></a></li>
<ul>
<div class="tag1">
<li class="cat2"><a href="#">derp</a></li>
<li class="cat2"><a href="#">derp</a></li>
<li class="cat2"><a href="#">derp</a></li>
</div>

</ul>
<li class="category2"><a href="#"></a></li>
<ul>
<div class="tag2">
<li class="cat2"><a href="#">derp</a></li>
<li class="cat2"><a href="#">derp</a></li>
<li class="cat2"><a href="#">derp</a></li>
</div>
</ul>
<li class="category3"><a href="#"></a></li>
<ul>
<div class="tag3">
<li class="cat2"><a href="#">derp</a></li>
<li class="cat2"><a href="#">derp</a></li>
<li class="cat2"><a href="#">derp</a></li>
</div>
</ul>

</ul>

这是我试过的 javascript 代码。它有效,但它很长。我想知道是否有更有效的方法来完成同样的事情。

$('.category1').click(function(){
$('.tag1').slideToggle('200');
$('.tag2').slideUp('200');
$('.tag3').slideUp('200');
return false;
});

$('.category2').click(function(){
$('.tag1').slideUp('200');
$('.tag2').slideToggle('200');
$('.tag3').slideUp('200');
return false;
});

$('.category3').click(function(){
$('.tag1').slideUp('200');
$('.tag2').slideUp('200');
$('.tag3').slideToggle('200');
return false;
});

最佳答案

嗯,我很确定你的标记是无效的,因为只有 li 元素应该嵌套在 ul 元素中(如果我错了请纠正我)。我将标记更改为:

<ul class="outer"> 
<li>
<a href="#"></a>
<ul>
<li class="cat1"><a href="#">derp</a></li>
<li class="cat1"><a href="#">derp</a></li>
<li class="cat1"><a href="#">derp</a></li>
</ul>
</li>
<li>
<a href="#"></a>
<ul>
<li class="cat2"><a href="#">derp</a></li>
<li class="cat2"><a href="#">derp</a></li>
<li class="cat2"><a href="#">derp</a></li>
</ul>
</li>
<li>
<a href="#"></a>
<ul>
<li class="cat3"><a href="#">derp</a></li>
<li class="cat3"><a href="#">derp</a></li>
<li class="cat4"><a href="#">derp</a></li>
</ul>
</li>
</ul>​​​​​​​​​​​​​​​​​​​​​​​​​​​​

这是脚本:

$(".outer > li > a").on("click", function(event) {
event.preventDefault();
$(".outer ul").slideUp();
var next = $(this).next();
if(next.is(":visible")) { return; }
next.slideDown();
});​

And here is the working example .

如您所见,我只是将 所有 ul 部分向上滑动,然后在单击 anchor 后向下滑动下一个部分。

关于javascript - 更高效的可折叠列表定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11252734/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com