15

私は 4 つのアンカーを持っています。アンカーがクリックされたときに現在のクラスをアンカーに追加し、同時に他の 3 つのクラスを削除したいと考えています。これが私のコードです。私は何を間違っていますか?

if ($("ul#thumb a").hasClass("current") {
    $("ul#thumb a").removeClass("current");
    $(this).addClass("current");
});

私のhtmlは次のようになります:

<ul id="thumbs">
    <li>
        <!-- intro page navi button -->
        <a id="t0" class="active" name="t0">The Company</a>

        <ul class="navi">
            <li><a style="display:none"></a></li>
            <li><a id="t1" name="t1">The Brief</a></li>
            <li><a id="t2" name="t2">The Solution</a></li>
            <li><a id="t3" name="t3">The Result</a></li>
        </ul>

    </li>
</ul>
4

2 に答える 2

29

イベント委任を使用することで、すべてのクリック イベントに対して 1 つのハンドラーのみをバインドします。アンカー (アンカー以外.current) がクリックされると、.currentそのクラスのアンカーを取り除き、クリックされたアンカーを新しい現在のアンカーにします。

$("#thumbs").on("click", "a:not(.current)", function ( event ) {
    $(".current", event.delegateTarget).removeClass("current");
    $(this).addClass("current");
});
于 2010-02-11T16:36:39.527 に答える