JSを使用してこのトグルクラスを実装するためのより良い方法は何ですか?
これがしていることは単にこれです:
[サービス]、[ギャラリー]、または[顧客]のいずれかをクリックすると、下のdiv内のクラス "hidden"が削除され、同じdiv内の他のすべてのリストにクラス"hidden"が追加されます。
何が起こっているかのライブデモはここで見ることができます:http ://www.cyberbytesdesign.com/WIP2 (これはメインのヘッダーナビゲーションです)。
これが私が使用しているコードです(これはすべてのコードの半分未満であるため、間違いなく効率的な方法ではありませんが、要点を理解しています)。
<nav>
<ul class="menu-option-set">
<li>
<a href="javascript:;" onmouseup="
document.getElementById('services').classList.toggle('hidden');
document.getElementById('gallery').classList.add('hidden');
document.getElementById('customer').classList.add('hidden');
">Services</a>
</li>
<li>
<a href="javascript:;" onmouseup="
document.getElementById('gallery').classList.toggle('hidden');
document.getElementById('services').classList.add('hidden');
document.getElementById('customer').classList.add('hidden'); ">Gallery</a>
</li>
<li>
<a href="javascript:;" onmouseup="
document.getElementById('gallery').classList.toggle('hidden');
document.getElementById('services').classList.add('hidden');
document.getElementById('customer').classList.add('hidden'); ">Customer</a>
</li>
</ul>
</nav>
<div id="header-subnav">
<nav>
<ul id="services" class="hidden">
<li <?php echo $bathroom ?>><a href="bathroom">Bathroom</a></li>
<li <?php echo $kitchen ?>><a href="index.php">Kitchen</a></li>
<li <?php echo $accessibility ?>><a href="index.php">Accessibility</a></li>
</ul>
<ul id="gallery" class="hidden">
<li <?php echo $photo ?>><a href="gallery.php">Photo Gallery</a></li>
<li <?php echo $project ?>><a href="project.php">Project Gallery</a></li>
</ul>
<ul id="customer" class="hidden">
<li <?php echo $coupons ?>><a href="coupons.php">Coupons</a></li>
<li <?php echo $testimonials ?>><a href="testimonials.php">Testimonials</a></li>
</ul>
<nav>
</div>
どういうわけかこれを使用するのと同様のことをしなければならないと思いますが、変更されています:
$('.menu-option-set a').click(function()
{
// if clicked item is selected then deselect it
if ($('#header-subnav').hasClass('hidden'))
{
$('#header-subnav').removeClass('hidden');
}
// otherwise deselect all and select just this one
else
{
$('.menu-option-set a').removeClass('hidden');
$('#header-subnav').addClass('hidden');
}
});
何か案は?