みなさん、良い一日を!
次の問題があります: ある製品のメニューと別の製品の別のメニューがあります。次のようになります。
製品1 | 製品2
ホーム オプション1 オプション2 オプション3 | オプション1 オプション2 オプション3
ここで、最初の 3 つのオプションは Product1 用で、最後の 3 つのオプションは Product2 用です。1 つの製品のメニューのみを表示する必要があります。
私のHTMLは次のようになります(もちろん簡略化されています):
<div class="products">
<a href="#" id="product1">Product1</a>
<a href="#" id="product2">Product2</a>
</div>
<ul id="menu1">
<li>Option1</li>
<li>Option2</li>
<li>Option3</li>
</ul>
<ul id="menu2">
<li>Option1</li>
<li>Option2</li>
<li>Option3</li>
</ul>
jQuery は次のようになります。
$(document).ready( function() {
$("#product1").addClass("active");
$("#menu2").hide();
$("#product2").click(function () {
$("#menu1").hide();
$("#menu2").show();
$("#product1").removeClass("active");
$("#product2").addClass("active");
});
$("#product1").click(function () {
$("#menu2").hide();
$("#menu1").show();
$("#product2").removeClass("active");
$("#product1").addClass("active");
});
});
問題:最初にページをロードしたとき、すべて問題ありません。たとえば、#product2 をクリックすると、関数で指定されたすべての処理が実行されます。
$("#product2").click(function () {
$("#menu1").hide();
$("#menu2").show();
$("#product1").removeClass("active");
$("#product2").addClass("active");
});
ただし、最初の 2 行も実行します。
$("#product1").addClass("active");
$("#menu2").hide();
そして、#product1 と #product2 の両方をアクティブにし、両方のメニューを非表示にします。何か案は?前もって感謝します!