我有一个包含组名的列表。
<ul id="groups" >
<li id="group1" ></li>
<li id="group2" ></li>
<li id="group3"></li>
</ul>
和滑动容器
<div id="containers" >
<ul id="container1" >
Lorem ipsum ..
</ul>
<ul id="container2" >
Lorem ipsum ..
</ul>
<ul id="container3" >
Lorem ipsum ..
</ul>
</div>
我想要做的是当你点击群组时它隐藏现有的容器并显示新容器。
答案 0 :(得分:1)
function hideAll() {
$("#container1 #containter2 #container3").hide();
}
$("#group1").click(function(){
hideAll();
$("#container1").show();
}
$("#group2").click(function(){
hideAll();
$("#container2").show();
}
$("#group3").click(function(){
hideAll();
$("#container3").show();
}
快速而残酷,但如果您拥有少量元素,则可能会有效。如果你有更多,那么你应该把事情分成几类($(".container").hide();
)等等。
答案 1 :(得分:1)
$("#groups > *").live('click', function() {
var linkIndex=parseInt($(this).attr('id').match(/[0-9]+/)[0], 10);
$("#containers > *").slideUp('slow');
$("#containers > *").filter(function() {
var containerIndex=parseInt($(this).attr('id').match(/[0-9]+/)[0], 10);
return containerIndex==linkIndex;
}).slideDown('slow');
});
您可以演示(稍加修改)版本here。