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

通过使用事件委托,我们只为所有点击事件绑定一个处理程序。当一个锚点(除了.current锚点)被点击时,我们剥离.current其类的锚点,并使点击的锚点成为新的当前锚点:

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

我想这会对你有所帮助

$("a").click(function() {
  $('a').removeClass('current');
  var id = $(this).attr('id');
  $('#'+id).addClass('current');
});
于 2014-04-24T13:04:00.213 回答