リンク「このページにさらに追加」と「場所の設定」スライドが対応するdivを開き、関連するコンテンツを表示するBBCホームページに表示される効果を再現しようとしています。「このページにさらに追加」を選択すると、「さらに追加」セクションがスライドして開きます。[このページにさらに追加] を再度選択すると、[さらに追加] セクションが閉じます。ただし、[さらに追加] セクションが開いているときに [場所の設定] を選択すると、[場所の設定] を下にスライドする前に [さらに追加] セクションが上にスライドします。
次のコードを使用して、この効果を再現することができました。
HTML
<ul id="demo">
<li><a href="#sectionOne">Link One <span class="rm">this site</span></a></li>
<li><a href="#sectionTwo">Link Two</a></li>
<li><a href="#sectionThree">Link Three</a></li>
</ul>
<div id="siteCustomisation">
<div class="siteSelection" id="sectionOne">
<h3>Section One</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla congue tincidunt tortor, id condimentum massa scelerisque id. Cras elit magna, posuere at sollicitudin in, tristique nec turpis.</p>
</div>
<div class="siteSelection" id="sectionTwo">
<h3>Section Two</h3>
<p>Maecenas condimentum tincidunt pretium. Ut est ipsum, pharetra quis congue eu, eleifend vitae velit. Vestibulum quam purus, posuere quis vehicula ut, sollicitudin vel urna.</p>
</div>
<div class="siteSelection" id="sectionThree">
<h3>Section Three</h3>
<p>Nulla id nisi eget urna gravida euismod. Mauris tempor, diam ullamcorper sagittis eleifend, urna mauris scelerisque massa, placerat sagittis massa augue nec purus.</p>
</div>
</div>
Jクエリコード
$(function(){
$("#siteCustomisation .siteSelection").hide();
$("#demo li a").each(function(index) {
$(this).click(function() {
var id = $(this).attr('href');
var $thisDiv = $(id);
if ($thisDiv.siblings(':visible').length) {
$thisDiv.siblings(':visible').slideUp(700, function() {
$thisDiv.slideDown();
});
} else {
$thisDiv.slideToggle();
}
return false;
});
});
});
問題は、誰かがリンク 1 をクリックしてからリンク 2 をすばやくクリックすると、両方の div がページに表示されることです。常に 1 つのセクションのみを表示する必要があります。この問題を解決する方法はありますか?
ご協力ありがとうございました。