我有三个信息面板(ID分别为panel-one
,panel-two
和panel-three
,所有的类info-panel
),我希望有一个链接点击和滑出(这些ID有ID toggle-one
,toggle-two
和toggle-three
,全部与类别toggle
)。如果其中一个div在点击其他链接时显示,我想隐藏可见div并显示新的链接。如果div的自己的链接被点击,我想切换显示/隐藏。我使用下面的代码来做到这一点:用jQuery切换多个DIV
HTML:
<ul>
<li><a id="toggle-one" class="toggle">One</a></li>
<li><a id="toggle-two" class="toggle">Two</a></li>
<li><a id="toggle-three" class="toggle">Three</a></li>
</ul>
<div id="panel-one" class="info-panel"><!-- content here --></div>
<div id="panel-two" class="info-panel"><!-- content here --></div>
<div id="panel-three" class="info-panel"><!-- content here --></div>
的jQuery:
$("#toggle-one").click(function() {
if($("#panel-two").is(":visible")) {
$("#panel-two").css("z-index", "9997").hide("slide", {direction: 'up'}, 750);
} else if($("#panel-three").css("z-index", "9997").is(":visible")) {
$("#panel-three").css("z-index", "9997").hide("slide", {direction: 'up'}, 750);
}
$("#panel-one").css("z-index", "9998").toggle("slide", {direction: 'up'}, 750);
return false;
});
$("#toggle-two").click(function() {
if($("#panel-one").is(":visible")) {
$("#panel-one").css("z-index", "9997").hide("slide", {direction: 'up'}, 750);
} else if($("#panel-three").is(":visible")) {
$("#formlink").css("z-index", "9997").hide("slide", {direction: 'up'}, 750);
}
$("#panel-two").css("z-index", "9998").toggle("slide", {direction: 'up'}, 750);
return false;
});
$("#toggle-three").click(function() {
if($("#panel-one").is(":visible")) {
$("#panel-one").css("z-index", "9997").hide("slide", {direction: 'up'}, 750);
} else if($("#panel-two").is(":visible")) {
$("#panel-two").css("z-index", "9997").hide("slide", {direction: 'up'}, 750);
}
$("#panel-three").css("z-index", "9998").toggle("slide", {direction: 'up'}, 750);
return false;
});
它的工作原理,但它是非常详细的,不会很好地扩展 - 管理信息的三个部分是好的,但是如果/当时间增加时,它将变成一个重大的维护工作。我试过使用类似于Show/Hide Multiple Divs with Jquery中概述的方法,但似乎无法使其正常工作 - 切换和隐藏行为不能很好地工作(隐藏潜水表演时,他们不应该立即隐藏和事物像那样)。同样,我似乎也无法得到Jquery toggle on 3 divs中显示的示例。
我敢肯定有一个更干净的方式来做到这一点,但由于我是一个jQuery和JavaScript n00b位,我真的不知道如何去整理它。解决这个问题的最好方法是什么?
工作示例:http://jsfiddle.net/b7C2d/1/ – campegg