0

私はこのように設定されたメニューを持っています:

<div id='top-navigation'>
    <ul>
    <li><a class='top-nav-button-unclicked' href='#'>SUBJECT</a></li>
    <li><a class='top-nav-button-unclicked' href='#'>TOPIC</a></li>
    <li><a class='top-nav-button-unclicked' href='#'>PRESENTER</a></li>
    </ul>
    </div>
    <div id='menu'>
    </div>

基本的に、リンクの 1 つをクリックすると、メニューがポップアップするようにします。私はjQueryにかなり慣れていませんが、これまでのところ:

$('#menu').hide();

$(".top-nav-button-unclicked, .top-nav-button-clicked").click(function(){
    if ($(this).hasClass('top-nav-button-clicked')) {
        $(this).removeClass().addClass("top-nav-button-unclicked");
    } else {
        $(this).removeClass().addClass("top-nav-button-clicked");
    }
    $('#menu').toggle();
});

これの問題は、最初のメニュー項目「SUBJECT」をクリックするとメニューが表示され、「TOPIC」をクリックするとメニューを開いたままにしたいことです(技術的には、 ajax を追加するとメニューの結果が変わりますそれ)

基本的に、どのボタンがメニューを呼び出しているかについて状態を維持する方法がわかりません。これを行う最善の方法は何ですか?

4

1 に答える 1

1

を使用しているように聞こえますが.toggle()、毎回切り替える必要はありません。その場合は、表示するかどうかを計算し、を使用するのではなく、その特定の状態を設定する必要があります.toggle()。ブール値を渡して、.toggle()表示するか非表示にするかを決定することもできます。

于 2012-06-15T03:47:27.493 に答える