ID が「albums」、「about」、「contact」の 3 つの要素と、ID が「togglealbums」、「toggleabout」、「togglecontact」の toggle() 関数を介してそれらを表示/非表示にする 3 つのリンクがあります。 . これらの要素の 1 つだけをいつでも表示できるようにしたいので、次の関数を作成しました。
$('#togglealbums').click(function() {
if( $('#about').is(':visible') ) {
$('#about').toggle(function() {
$('#albums').toggle();
});
} else if( $('#contact').is(':visible') ) {
$('#contact').toggle(function() {
$('#albums').toggle();
});
} else {
$('#albums').toggle();
}
});
$('#toggleabout').click(function() {
if( $('#albums').is(':visible') ) {
$('#albums').toggle(function() {
$('#about').toggle();
});
} else if( $('#contact').is(':visible') ) {
$('#contact').toggle(function() {
$('#about').toggle();
});
} else {
$('#about').toggle();
}
});
$('#togglecontact').click(function() {
if( $('#albums').is(':visible') ) {
$('#albums').toggle(function() {
$('#contact').toggle();
});
} else if( $('#about').is(':visible') ) {
$('#about').toggle(function() {
$('#contact').toggle();
});
} else {
$('#contact').toggle();
}
});
まず、これらが非常に非効率的である場合、またはこれを行う簡単な方法がある場合は、お知らせください。
私が見つけたのは、3 つの DIV のいずれも表示されていない場合、トグル リンクのいずれかをクリックすると、それぞれの div がアニメーションなしで表示/非表示になることです。ただし、DIV の 1 つが表示されている場合、別のトグル リンクをクリックすると、div が縮小してフェードし、新しいものが拡大してフェードインしますが、これは (少なくとも今のところ) 望ましくありません。これはhttp://new.e17.paca.arvixe.comで見ることができます。
なぜこれが起こっているのか誰にも教えてもらえますか?
ありがとう!
編集:
マークアップはここにあります:
<body>
<div id="main">
<div id="nav">
<div id="menu">
<ul>
<li><a href="#" id="togglealbums">Albums</a></li>
<li><a href="#" id="toggleabout">About Me</a></li>
<li><a href="#" id="togglecontact">Contact</a></li>
</ul>
</div>
</div>
<div id="albums">
Albums go here
</div>
<div id="about">
About info goes here
</div>
<div id="contact">
Contact info goes here
</div>
</div>
</body>