JQuery добавить удалить класс - PullRequest
15 голосов
/ 11 февраля 2010

У меня есть 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>

Ответы [ 2 ]

29 голосов
/ 11 февраля 2010

Используя делегирование события, мы связываем только один обработчик для всех событий щелчка. Если щелкнуть привязку (отличную от привязки .current), мы удаляем привязку .current ее класса и назначаем привязанную привязку новой текущей привязкой:

$("#thumbs").on("click", "a:not(.current)", function ( event ) {
    $(".current", event.delegateTarget).removeClass("current");
    $(this).addClass("current");
});
0 голосов
/ 24 апреля 2014

Я думаю, это поможет вам

$("a").click(function() {
  $('a').removeClass('current');
  var id = $(this).attr('id');
  $('#'+id).addClass('current');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...