3つの情報パネル(IDが、、、panel-one
すべてがクラスのdiv)がpanel-two
あり、リンクをクリックするだけでスライドインおよびスライドアウトできます(これらにはID、、、すべてがクラスがあります)。他のリンクの1つがクリックされたときに、divの1つが表示されている場合は、表示されているdivを非表示にして、新しいdivを表示したいと思います。div自身のリンクがクリックされた場合、表示/非表示を切り替えたいと思います。私はこれを行うために次のコードを使用しています:panel-three
info-panel
toggle-one
toggle-two
toggle-three
toggle
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;
});
それは機能しますが、非常に冗長であり、拡張性も高くありません。3divの情報を管理することは問題ありませんが、さらに追加するときが来ると、維持するのが非常に困難になります。「 Jqueryで複数のDivを表示/非表示」で概説されているようなアプローチを使用してみましたが、正しく機能しないようです-トグルと非表示の動作がうまく機能しません(非表示のダイビングショーが必要なときに表示されます)その後、すぐに非表示にします)。同様に、3divのJqueryトグルで示されている例も機能しないようです。
これを行うにはもっとクリーンな方法があると確信していますが、私はjQueryとjavascript n00bに少し慣れているので、それを整理する方法がわかりません。これに取り組むための最良の方法は何ですか?