我想要实现的是,每当用户查看一个子类别,然后选择查看另一个子类别时,我想滑动当前可见的子类别,并滑动用户的新子类别想看。
<ul class="depth-one">
<li>Category 1
<ul class="depth-two">
<li>Category 1.1</li>
<li>Category 1.2</li>
<li>Category 1.3</li>
</ul>
</li>
<li>Category 2
<ul class="depth-two">
<li>Category 2.1</li>
<li>Category 2.2</li>
<li>Category 2.3</li>
</ul>
</li>
<li>Category 3
<ul class="depth-two">
<li>Category 3.1</li>
<li>Category 3.2</li>
<li>Category 3.3</li>
</ul>
</li>
</ul>
ul {
list-style: none;
padding:0;
margin:0;
}
.depth-one {
display:block;
}
.depth-two {
display:none;
}
$(document).ready(function () {
$(".depth-one > li").click(function (e) {
if (e.currentTarget == e.target) {
selector = $(this).find(' > .depth-two');
if ($(selector).css("display") == "none") {
$('.depth-one > ul').slideUp(400);
$(selector).slideDown(800);
} else {
selector.slideUp(800);
}
}
});
});
答案 0 :(得分:2)
将此添加到您的点击功能:$('.depth-one > li > ul').slideUp(800);
<强> Demo 强>
整个代码:
$(document).ready(function () {
$(".depth-one > li").click(function (e) {
$('.depth-one > li > ul').slideUp(800);
if (e.currentTarget == e.target) {
selector = $(this).find(' > .depth-two');
if ($(selector).css("display") == "none") {
$('.depth-one > ul').slideUp(400);
$(selector).slideDown(800);
} else {
selector.slideUp(800);
}
}
});
});
答案 1 :(得分:1)
在我对上一个问题的回答中添加一行($('.depth-two').not(this).slideUp(800);
),即可获得所需的结果:
$(document).ready(function () {
$(".depth-one > li").click(function () {
$('.depth-two').not(this).slideUp(800);
selector = $(this).find(' > .depth-two');
if ($(selector).css("display") == "none") {
selector.slideDown(800);
} else {
selector.slideUp(800);
}
});
$('li li').click(function (e) {
e.stopPropagation();
});
});
<强> jsFiddle example 强>
答案 2 :(得分:0)
这可能是您需要的所有代码:
$(document).ready(function () {
$(".depth-one > li").click(function (e) {
$(".depth-one > li > .depth-two").slideUp(800);
$(this).find(' > .depth-two').slideDown(800);
});
});
答案 3 :(得分:0)
试试这个..
$(document).ready(function () {
$(".depth-one > li").click(function (e) {
$("ul.toggled").slideToggle().removeClass('toggled');
$('ul', this).slideToggle().addClass('toggled');
});
});