基本的に、3つのオプションと3つのdivを備えた設定メニューがあり、そのうち2つはデフォルトで非表示になっています。最初のクリックですべてが正常に機能し、現在のリンクからアクティブなクラスを削除してクリックされたものに追加しながら、正しいdivを非表示にして正しいdivを表示します。ただし、別のリンクをもう一度クリックしようとすると、正しいdivが下にスライドしますが、開いている他のdivは上にスライドしません。ハマった。
コード:
html:
<ul class="nav nav-pills">
<li class="settingLink active" data-tab="general"><a href="#">General</a></li>
<li class="settingLink" data-tab="social" ><a href="#">Social</a></li>
<li class="settingLink" data-tab="captcha"><a href="#">Captcha</a></li>
</ul>
div:
<div id="generalSettings">
</div>
<div id="socialSettings">
</div>
<div id="captchaSettings">
</div>
JS:
function settingMenu(event)
{
$('.settingLink').bind('click', function(){
//The tab value of the currently clicked element
var tab = $(this).data('tab');
//Current active element
var current = $('.active, .settingLink').data('tab');
//Slide the old div up
$('#'+current+'Settings').slideUp('fast', function(){
//Slide the new div down
$('#'+tab+'Settings').slideDown();
});
//Remove active class from current link
$('.active, .settingLink').removeClass('active');
//Add active class to new link
$(this).addClass('active');
});
}
前もって感謝します!