-2

class="active"を使用してアクティブな状態を表示するナビゲーションがあります。リンクがクリックされたら、クリックされたリンクに「アクティブ」クラスを追加し、他のすべてのリンクから「アクティブ」クラスを削除する必要があります。

これが私のコードです:

<div id="referNav">
<div id="referLink1"><a href="javascript:;" onClick="changeClass();" class="active"></a></div>
<div id="referLink2"><a href="javascript:;" onClick="changeClass();" class=""></a></div>
<div id="referLink3"><a href="javascript:;" onClick="changeClass();" class=""></a></div>
</div>

どんな助けでも大歓迎です!

4

3 に答える 3

5

これを試して:

function changeClass() {
    $('#referNav a').removeClass('active');
    $(this).addClass('active');
}

また、次のようにjavacriptで関数をバインドする必要があります。

$('#referNav a').on('click', changeClass);

そうすれば、Travis Jがコメントで指摘しているように$(this)、正しいオブジェクトを参照します。

jsFiddle

于 2013-03-26T19:22:15.483 に答える
1

あなたがする必要があるのは、そのクラスchangeClassを探して削除するという関数を作成することです。次に、クリックしたばかりの要素にclass="active"クラス名を割り当てます。activeクリックされている要素を関数に渡して、どの要素がクリックされたかがわかるようにすると便利です。それ以外の場合は、グローバルオブジェクトを使用しeventて、現在のオブジェクトを確認できますtargetElement

この種の質問は奨励されていないので、私はただ解決策を示すことには消極的です。人々は自分の仕事をするべきです。ただし、これは単純な状況であるため、jsFiddleデモ

$("div[id^=referLink] a").click(function(){
 $('#referNav .active').removeClass('active');
 $(this).addClass('active');
});
于 2013-03-26T19:23:24.390 に答える
0

私の解決策

 $('#referNav').on('div','click',functin(e){
    $(e.target).closest('div[class^="referLink"]').siblings().find('a').removeClass('active');
    $(e.target).closest('div').find('a').addClass('active');
    });
于 2013-03-26T19:25:14.583 に答える